首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何设置oidc ResponseType以同时获取claims和access_token?

在设置 OpenID Connect (OIDC) 的 ResponseType 以同时获取 claims 和 access_token,可以使用以下方式:

  1. ResponseType 参数:在 OIDC 授权请求中,可以使用 ResponseType 参数来指定所需的响应类型。对于同时获取 claims 和 access_token,可以使用 ResponseType 参数值为 "code id_token" 或 "code token"。
  2. Authorization Endpoint:首先,需要将用户重定向到 OIDC 提供商的授权端点(Authorization Endpoint)。在重定向 URL 中,包含以下参数:
    • client_id:注册在 OIDC 提供商处的客户端标识符。
    • redirect_uri:授权成功后重定向的 URL。
    • response_type:设置为 "code id_token" 或 "code token"。
    • scope:请求的权限范围。
    • state:用于防止跨站请求伪造攻击的随机值。
    • nonce:用于验证 ID Token 的随机值。
  • 用户授权:用户在 OIDC 提供商的登录页面上进行身份验证,并授权客户端应用程序访问其信息。
  • 授权码回调:一旦用户授权成功,OIDC 提供商将重定向用户到之前指定的 redirect_uri,并附加一个授权码(authorization code)作为查询参数。
  • Token Endpoint:客户端应用程序使用授权码向 OIDC 提供商的 Token Endpoint 发送请求,以获取访问令牌(access token)和 ID 令牌(ID token)。
  • 获取令牌:在 Token Endpoint 请求中,包含以下参数:
    • grant_type:设置为 "authorization_code"。
    • code:之前收到的授权码。
    • client_id:注册在 OIDC 提供商处的客户端标识符。
    • client_secret:客户端的机密信息,用于身份验证。
    • redirect_uri:与授权请求中的重定向 URI 相同。
  • 响应:OIDC 提供商将返回包含访问令牌和 ID 令牌的响应。根据 ResponseType 参数的不同,响应可能包含 "code"、"id_token" 和/或 "access_token"。

通过以上步骤,可以同时获取 claims 和 access_token。请注意,具体的实现方式可能因 OIDC 提供商的不同而有所差异。在腾讯云的场景中,可以参考腾讯云的 OIDC 相关文档和产品介绍,以了解如何在腾讯云环境中设置 OIDC ResponseType。

参考链接:

  • 腾讯云 OIDC 文档:https://cloud.tencent.com/document/product/1093/53264
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET Core微服务之基于IdentityServer建立授权与验证服务(续)

这一篇我们了解下如何集成API ServiceMVC Web Application。...如果我们将上面获取的token的grant_type设置为password的话,那我们会在Claims获取到用户ID的信息。...值得一提的是这里的ResponseType为"id_token token",表示既获取id_token也获取access_token。...API Service Client的设置不同的就是在AllowedScopes中给它增加了OpenIdProfile,因为我们为MvcClient设定的是oidc而不是bearer的模式。...但是,IdentityServer的内容很多,我只是学习了一些我要掌握做POC的部分,其他还有很多功能知识点我没有学习,大家可以通过搜索园子里各种大神(eg.晓晨Master, solenovex等等等等

1.8K50

使用Identity Server 4建立Authorization Server (3)

上一部分简单的弄了个web api 并通过Client_CredentialsResourceOwnerPassword两种方式获取token然后进行api请求....RedirectUris就是登陆成功之后重定向的网址, 这个网址(http://localhost:5002/signin-oidc)在MvcClient里, openid connect中间件使用这个地址就会知道如何处理从...这个地址将会在openid connect 中间件设置合适的cookies, 确保配置的正确性. 而PostLogoutRedirectUris是登出之后重定向的网址....上面的AllowedScopes设定的就是我们要用的scopes, 他们包括 openid Connect用户的profile, 同时也包括我们之前写的api resource: "socialnetwork..."); } 这里需要确保同时登出本地应用(MvcClient)的CookiesOpenId Connect(去Identity Server清除单点登录的Session).

1.3K60
  • 使用Identity Server 4建立Authorization Server (4)

    还需要指定请求访问的scopes: 包括 socialnetwork api离线访问 最后还可以告诉它从UserInfo节点获取用户的Claims....使用这个refresh token可以获取到新的access tokenrefresh_token, 当这个access_token过期的时候, 可以使用refresh_token再获取一个access_token...获取自定义Claims web api 要求request请求提供access token, 证明请求的用户是已经授权的....让我们运行一下, 并在MvcClientWeb Api里面都设好断点, 登录后在浏览器输入 http://localhost:5002/Home/GetIdentity 执行GetIdenttiy方法...然后设置一下过期时间. 然后将老的identity token获取到的其它tokens以及过期时间, 组成一个集合. 然后使用这些tokens来重新登陆用户.

    1.5K50

    Blazor.Server正确的方式 丶集成Ids4

    //github.com/BlazorHub/AntDesignTemplate 那今天我就快速的给大家说一下,如何在Blazor服务端来设计集成认证中心,当然里边会涉及一些基础知识点,我就不展开了,...但是我们的项目毕竟是服务端,Blazor服务端使用ids4,感觉MVC还是有些相似的,都是基于Cookie的oidc认证模式。...那到了这里,我们已经完成了Blazor服务端如何集成ids4的代码,不过这样还是有些问题的,比如: 如果获取access_token来访问第三方的资源服务器api呢?...token,访问api 这一块之前的逻辑是一样的,通过HttpClient来实现对第三方资源服务器的api访问,那肯定需要获取token,这个就从上边的cache中获取: public async...获取当前用户的sid唯一标志 var sid = _accessor.HttpContext.User.Claims .Where(c => c.Type.Equals

    1.5K10

    OAuth2.0 OpenID Connect 一

    使用 OIDC,定义了许多特定的范围名称,每个名称都会产生不同的结果。OIDC 同时具有访问令牌 ID 令牌。ID 令牌必须是 JSON Web 令牌 (JWT)。...关键概念:范围、声明响应类型 在我们深入了解 OIDC 的细节之前,让我们退后一步,谈谈我们如何与之交互。...通常,您需要使用/tokenHTTP POST 访问端点获取用于进一步交互的令牌。 OIDC 还有一个/introspect用于验证令牌的端点,一个/userinfo用于获取用户身份信息的端点。...身份验证成功后,响应将在第一种情况下包含一个id_token一个,在第二种情况下仅包含一个。当您有一个应用程序直接与后端对话获取没有中间件的令牌时,此流程很有用。它不支持长期会话。...关于令牌 有了范围、声明响应类型的基础,我们现在可以谈论令牌了!OIDC 中存在三种类型的令牌:id_token、access_tokenrefresh_token。

    42930

    《ASP.NET Core 微服务实战》-- 读书笔记(第10章)

    Bearer 令牌时,会从 Authorization 请求头提取令牌 很多各式的令牌,例如 OAuth 2.0 (JWT),通常将 Base64 编码用作一种 URL 友好格式,因此验证令牌的第一步就是解码,获取原有内容...令牌 OpenID Connect 基础 OpenID Connect 是 OAuth2 的一个超集,它规定了身份提供方(IDP)、用户应用之间的安全通信的规范标准 使用 OIDC 保障 ASP.NET...视图代码,它从特征集合中逐个取出特征的类型值,并呈现在表格中,同时,视图还显示用户头像 ...OIDC 标准的优势,从手工管理身份验证的负担中解放出来 OIDC 中间件云原生 我们已经讨论过在使用 Netflix OSS 技术栈时,如何借助 Steeltoe 类库支持应用配置和服务发现 我们可以使用来自...在这个流程中,用户登录的流程前面已经讨论过,即通过几次浏览器重定向完成网站 IDP 之间的交互 当网站获取到合法身份后,会向 IDP 申请访问令牌,申请时需要提供身份证令牌以及正在被请求的资源的信息

    1.8K10

    从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之五 || Swagger的使用 3.3 JWT权限验证

    2)授权服务根据用户身份,生成一张专属“令牌”,并将该“令牌”JWT规范返回给客户端 3)客户端将获取到的“令牌”放到http请求的headers中后,向主服务系统发起请求。...,请暂时忽略其内部是如何获取的,可以直接用 var userRole="Admin"; 来代替更好理解。...2、自定义认证之身份验证设置 上边第一步中,咱们已经对每一个接口api设置好了 授权机制 ,那这里就要开始认证,咱们先看看如何实现自定义的认证: JwtTokenAuth,一个中间件,用来过滤每一个http...Bearer验证中的凭证称为BEARER_TOKEN,或者是access_token,它的颁发验证完全由我们自己的应用程序来控制,而不依赖于系统Web服务器,Bearer验证的标准请求方式如下: Authorization...OIDC兼容OAuth2协议,我们可以使用上一章介绍的授权码模式来获取Token,也可以直接用户名密码模式来获取Token: 请求: POST https://oidc.faasx.com/connect

    1.9K30

    4.OIDC(OpenId Connect)身份认证授权(核心部分)

    定义OIDC的核心功能,在OAuth 2.0之上构建身份认证,以及如何使用Claims来传递用户的信息。 Discovery:可选。...基于后端的注销机制,定义了RPOP直接如何通信来完成注销。 除了上面这8个之外,还有其他的正在制定中的扩展。...ID Token通常情况下还会包含其他的Claims(毕竟上述claim中只有sub是EU相关的,这在一般情况下是不够的,必须还需要EU的用户名,头像等其他的资料,OIDC提供了一组公共的cliams...如何获取到ID Token,因为OIDC基于OAuth2,所以OIDC的认证流程主要是由OAuth2的几种授权流程延伸而来的,有以下3种: Authorization Code Flow:使用OAuth2...OIDC新定义的参数(OAuth 2.0 Form Post Response Mode),用来指定Authorization Endpoint何种方式返回数据。 nonce:可选。

    4.3K50

    CAS、OAuth、OIDC、SAML有何异同?

    此时,用户在CAS服务端处于登陆状态); CAS服务器同时也会把用户重定向至CAS Client, 且同时发送一个Service Ticket; CAS Client的服务端收到这个Service Ticket...相比OAuth2,OIDC引入了id_token等userinfo相关的概念: 整个OAuth2协议,只是定义了access_token/refresh_token,但是这俩token只是为了保护Resource...StandardClaims OIDC引入了关于如何获取详细userinfo的Endpoint; OIDC定义了类似于SAML Metadata的Discovery接口,俗称well-known接口:...SAML标准定义了身份提供者(Identity Provider)和服务提供者(Service Provider)之间,如何通过SAML规范,采用加密签名的方式来建立互信,从而交换用户身份信息。...技术上,SAML协议基于XML,Assertion的方式,通过签名和加密交换用户身份信息. 这一点OIDC协议中的ID_Token类似(采用签名/加密的id_token来交换用户身份)。

    25.1K56

    【实战 Ids4】║ 又一个项目迁移完成(MVC)

    掌握四种就行,除了这两个,还有HybridClient,其他的如果没有精力,可以放一放,那下边我们就快速的说一下如何将MVC项目迁移到Ids4上。...true,以方便我们后边要从claims声明中获取返回的值。...,上边的是Ids4的,下边的是普通的Identity的: 然后注入服务: // IdentityServer4 注入 services.AddId4OidcSetup(); 那我们直接看看服务是如何设置的...= CookieAuthenticationDefaults.AuthenticationScheme; // identityserver4设置使用"oidc"进行认证...,逻辑如何调,上下文中的claims声明如何获取,这里就不多说了,默认已经会了我的第一个项目的Blog.Core的相关内容,这里我们只是来看看是不是能获取到相应的Claims就行: 可以看到我们已经获取到了这个

    67820
    领券