Azure AD MFA身份验证器反向通道请求 第 1 部分:预备步骤 - 这已经有效第 2 部分选项 1 - CIBA 到 AAD:第 2 部分选项 2 - 通过 API 提供商的 CIBA:

问题描述

问题:用户不在上下文中(无用户会话)的服务是否可以通过 Microsoft 身份验证器提示用户进行授权。

您可以假设客户端是 Azure AD 中的注册应用程序(具有范围、重定向 URL 等),并针对客户端凭据、身份验证代码 (OAuth2) 和 OIDC 流进行设置。

背景/细节

上面的问题是需要什么的关键,只是在用户当前不在上下文中时提示用户授权客户端进行操作。下面是在 CIBA 类型流中的情况,但 CIBA 不是必需的。

作为前一步,客户端通过 Azure AD 的 OIDC 身份验证代码流向用户发送以获取 id 令牌。

是否可以通过后续的反向通道流程来获取授权码?这种情况通常用于用户无法与授权服务器创建会话的情况(例如在汽油泵上)。 例如,有一个名为 CIBA 的开放 ID 流,请参阅 Client Intiated Backchannel Authentication

第 1 部分:(预备步骤 - 这已经有效)

mermaid.initialize({startOnLoad:true});
<script src="https://unpkg.com/mermaid@8.0.0/dist/mermaid.min.js"></script>

<div class="mermaid">
  sequenceDiagram
     participant U as User
     participant C as Client
     participant AAD as AzureAD​
     U->>AAD : /authorize
     AAD-->U : User authorizes request with Microsoft Authenticator
     AAD-->>U : redirect(id_token)
     U->>C : redirect_uri(id_token) 
</div>

第 2 部分(选项 1 - CIBA 到 AAD):

mermaid.initialize({startOnLoad:true});
<script src="https://unpkg.com/mermaid@8.0.0/dist/mermaid.min.js"></script>

<div class="mermaid">
  sequenceDiagram
      participant U as User
      participant C as Client
      participant AAD as AzureAD          
      C->>AAD : /bc-authorize(id_token)
      AAD->>U : prompt (Authenticator)
      U->>AAD : Authorize
      AAD->>C : AuthorizeComplete   
</div>

第 2 部分(选项 2 - 通过 API 提供商的 CIBA):

mermaid.initialize({startOnLoad:true});
<script src="https://unpkg.com/mermaid@8.0.0/dist/mermaid.min.js"></script>

<div class="mermaid">
  sequenceDiagram
      participant C as Cliend
      participant AAD as Azure AD ​
      participant AP as "API Provider"
      ​C->>AP : /bc-authorize(id_token)
      ​AP->>AAD : /bc-authorize(id_token)
      AAD->>User : prompt (Authenticator)
      User->>AAD : Authorize
      AAD ->> AP : AuthorizeComplete
</div>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)