首页 > 解决方案 > 将 ASAuthorizationAppleIDProvider 与 Azure B2C 一起使用 - 可以吗?

问题描述

我正在编写一个通过 Azure B2C 访问 Web 的 iOS/macOS 应用程序。我让应用程序使用电子邮件(ROPC 流)和 Microsoft 身份提供者(授权代码流)成功登录。我还在我的 Azure B2C 帐户上设置了一个新的(预览版)Apple ID 身份提供程序,可以通过 Web 界面使用 Apple ID 登录。

我现在正尝试在我的应用程序中添加对 Sign in with Apple 的支持,并且我希望通过使用 ASAuthorizationAppleIDProvider 使其对用户尽可能好。我已成功注册我的应用程序并让 ASAuthorizationAppleIDProvider 返回身份验证代码和 ID 令牌。

现在 - 我可以用那些登录 Azure B2C 做什么?任何事物?我最终想以某种方式使用通过 Apple ID 授予的授权从 Azure B2C 请求访问和刷新令牌。那可能吗?如果是这样,我应该在哪里发送苹果提供的身份验证代码和/或 ID 令牌?Azure B2C 的授权端点?什么资助类型?

标签: azure-ad-b2csign-in-with-apple

解决方案


这是不可能的。流程是 iOS 应用程序 -> 向 AAD B2C 发出 OIDC 请求 -> 向 Apple IdP 发出 OIDC 请求。

您需要使用像 msal4ios 这样的 OIDC 库来将 OIDC 与 AAD B2C 对话。此内置 Apple SDK 方法 (ASAuthorizationAppleIDProvider) 将无法调用 AAD B2C。除非您通过 AAD B2C 开始,否则您不能直接调用 Apple ID 然后将该令牌换成 B2C 令牌。


推荐阅读