我正在使用Open ID Connect,并从Azure Active Directory请求令牌。我正在使用授权代码流,因此我同时收到id_token和access_token。我正在使用.NET Core。
我的Open Id Connect配置如下:
<!-- In Template File -->
<div [innerHtml]="testHtml"></div>
注意将“保存令牌”设置为 true
用户登录后,我可以按以下方式检索两个令牌:
select id, name
from table1
where parent_id = '${parent_id}'
我的问题是,这些令牌实际存储在哪里,如何配置这些令牌的存储方式?
我还听说,在授权代码流中,身份提供者将返回授权代码,然后服务器将使用该代码来请求令牌。但是,我没有以编程方式进行任何操作,但仍能够检索令牌。这是使用Open Id Connect自动处理的吗?
答案 0 :(得分:2)
这些令牌实际保存在哪里?
正如OpenID Connect protocol
图架构所描述的,当启动新会话时,将返回新的cookie以控制该会话。该“会话cookie”是基于“ ID令牌”创建的,并且只要此cookie有效,就将用户视为已通过身份验证。在使用OpenID Connect(OIDC)时,它会创建cookie并将令牌保存在那里。您可以参考此docs
如何配置这些令牌?
如果要配置令牌机制,Microsoft将为此提供库。您可以使用ADAL或MSAL进行自己的配置。
这是使用Open Id Connect自动处理的吗?
它具有某种后台机制,但是您必须使用身份验证库来处理应用程序代码。您可以参考official docs
有关更多详细信息,您可以参考最新的文档
答案 1 :(得分:0)
response_type
设置为code
,表示您正在使用授权码流。
当您将OIDC身份验证代码流以及clientid和clientsecret一起使用到get token时,工作过程如下:
1。用户在常规Web应用程序中单击“登录”。
2.Auth0的SDK将用户重定向到Auth0授权服务器(/授权端点)。
3。您的Auth0授权服务器将用户重定向到登录和授权提示。
4。用户使用已配置的登录选项之一进行身份验证,并且可能会看到一个同意页面,其中列出了Auth0将授予常规Web应用程序的权限。
5。您的Auth0授权服务器使用授权码将用户重定向回应用程序。
6.Auth0的SDK将此代码连同应用程序的客户端ID和客户端密钥一起发送到Auth0授权服务器(/ oauth /令牌端点)。
7。您的Auth0授权服务器验证代码,客户端ID和客户端密钥。
8。您的Auth0授权服务器以ID令牌和访问令牌(以及可选的刷新令牌)作为响应。