Retrieve/create Azure AD 会话使用 Access/ID 个令牌
Retrieve/create Azure AD session using Access/ID tokens
是否可以建立仅具有使用 ADAL 库获得的 Access/ID 令牌的 Azure AD SSO/session(包含所有必需的 cookie)?
我们的场景与描述的场景非常相似 here:
我们有带有 ADAL 库的 Cordova 应用程序作为插件。我们设法使用 ADAL 对用户进行身份验证并获得 Access/ID 令牌。然后我们在 Azure AD 和后端之间启动 SAML SSO。它在用户第一次使用 ADAL 进行身份验证时工作正常,因为它会弹出 Microsoft 登录屏幕,并且在身份验证成功后,它会与 Azure AD 建立会话。但是,当用户注销时,我们的应用程序会清除所有 cookie,下次 ADAL 会从缓存中获取令牌,并且不会提供登录屏幕,这没问题。问题是 SAML SSO 在那之后不起作用,因为会话消失了(没有 cookie)。
我知道 ADAL 并不是为与 SAML 一起工作而设计的,但也许有一些肮脏或不肮脏的解决方法来与只有访问或 ID 令牌的 Azure AD 建立会话?
不,这是不可能的。
要获取会话cookie,用户必须自己登录。
您可以通过在授权 URI 中指定他们的 AAD 租户 ID(而不是常见的),并在授权调用中指定 login_hint=username@company.com
和他们的用户主体名称来帮助用户登录到正确的帐户作为额外的查询参数。
然后他们应该只需要输入密码(+ MFA 等)
是否可以建立仅具有使用 ADAL 库获得的 Access/ID 令牌的 Azure AD SSO/session(包含所有必需的 cookie)?
我们的场景与描述的场景非常相似 here:
我们有带有 ADAL 库的 Cordova 应用程序作为插件。我们设法使用 ADAL 对用户进行身份验证并获得 Access/ID 令牌。然后我们在 Azure AD 和后端之间启动 SAML SSO。它在用户第一次使用 ADAL 进行身份验证时工作正常,因为它会弹出 Microsoft 登录屏幕,并且在身份验证成功后,它会与 Azure AD 建立会话。但是,当用户注销时,我们的应用程序会清除所有 cookie,下次 ADAL 会从缓存中获取令牌,并且不会提供登录屏幕,这没问题。问题是 SAML SSO 在那之后不起作用,因为会话消失了(没有 cookie)。
我知道 ADAL 并不是为与 SAML 一起工作而设计的,但也许有一些肮脏或不肮脏的解决方法来与只有访问或 ID 令牌的 Azure AD 建立会话?
不,这是不可能的。 要获取会话cookie,用户必须自己登录。
您可以通过在授权 URI 中指定他们的 AAD 租户 ID(而不是常见的),并在授权调用中指定 login_hint=username@company.com
和他们的用户主体名称来帮助用户登录到正确的帐户作为额外的查询参数。
然后他们应该只需要输入密码(+ MFA 等)