客户端凭据授予中的 Microsoft Azure OAuth ID 令牌
Microsoft Azure OAuth ID Token In Client Credentials Grant
理想情况下,我希望能够让管理员为我的应用程序授予 application 权限,并在同一流程中登录所述应用程序。这可能吗?
我目前使用 code grant flow 进行 身份验证。
然后我使用client credentials flow进行授权。
是否可以将两者合并为一个流程?
如果之前未授予客户端令牌,我会立即将第一个重定向到第二个,但从用户体验的角度来看,这并不是最吸引人的流程。
如果我可以将 ID 令牌添加到客户端授权响应中,那将是完美的(我只需要同意的管理员的 UPN),但这似乎不可能。
一个关键要求是应用程序权限,因为我的应用程序对整个组织进行了更改 - 在同一流程中获取受让人的 ID 只是一种用户体验优化。
也许 OpenID Connect flow 可以做到这一点?
Is it possible to combine the two into a single flow?
不,这是两种不同的身份验证流程。
对于授权代码流程,它用于在大多数应用程序类型中执行身份验证和授权,包括单页应用程序、Web 应用程序和本机安装的应用程序。该流使应用能够安全地获取 access_tokens,可用于访问受 Microsoft 身份平台终结点保护的资源,以及刷新令牌以获取额外的 access_tokens,以及登录用户的 ID 令牌。该流程通常用于有用户交互的场景。
对于客户端凭证流,就是管理员直接给应用本身授权。当应用程序向资源提供令牌时,资源将强制应用程序本身具有执行操作的权限。这种类型的授权通常用于必须在后台 运行 并且不需要与用户立即交互的服务器到服务器交互。这个一般用在守护进程中,只能获取access_token用于访问资源
Perhaps this is possible with the OpenID Connect flow?
这里是用户登录的地方,一般都是委托权限,所以不可能。
因此,综上所述,使用客户端凭证流时无法获取 ID 令牌,因为该流中没有用户交互。
理想情况下,我希望能够让管理员为我的应用程序授予 application 权限,并在同一流程中登录所述应用程序。这可能吗?
我目前使用 code grant flow 进行 身份验证。
然后我使用client credentials flow进行授权。
是否可以将两者合并为一个流程?
如果之前未授予客户端令牌,我会立即将第一个重定向到第二个,但从用户体验的角度来看,这并不是最吸引人的流程。
如果我可以将 ID 令牌添加到客户端授权响应中,那将是完美的(我只需要同意的管理员的 UPN),但这似乎不可能。
一个关键要求是应用程序权限,因为我的应用程序对整个组织进行了更改 - 在同一流程中获取受让人的 ID 只是一种用户体验优化。
也许 OpenID Connect flow 可以做到这一点?
Is it possible to combine the two into a single flow?
不,这是两种不同的身份验证流程。
对于授权代码流程,它用于在大多数应用程序类型中执行身份验证和授权,包括单页应用程序、Web 应用程序和本机安装的应用程序。该流使应用能够安全地获取 access_tokens,可用于访问受 Microsoft 身份平台终结点保护的资源,以及刷新令牌以获取额外的 access_tokens,以及登录用户的 ID 令牌。该流程通常用于有用户交互的场景。
对于客户端凭证流,就是管理员直接给应用本身授权。当应用程序向资源提供令牌时,资源将强制应用程序本身具有执行操作的权限。这种类型的授权通常用于必须在后台 运行 并且不需要与用户立即交互的服务器到服务器交互。这个一般用在守护进程中,只能获取access_token用于访问资源
Perhaps this is possible with the OpenID Connect flow?
这里是用户登录的地方,一般都是委托权限,所以不可能。
因此,综上所述,使用客户端凭证流时无法获取 ID 令牌,因为该流中没有用户交互。