IdentityServer4 Hybrid 模式

Posted uptothesky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IdentityServer4 Hybrid 模式相关的知识,希望对你有一定的参考价值。

原文参考:Switching to Hybrid Flow and adding API Access back

接上篇:IdentityServer-Protecting an API using Client Credentials

首先配置OpenID:

原文参考:Adding User Authentication with OpenID Connect

下载相关UI:Quickstart UI repo

下载下来后主要有3个文件夹

技术分享图片

需要把前面两个文件夹的部分内容复制到项目中

Quickstart目录中复制如下内容

技术分享图片

Views目录中复制如下内容

技术分享图片

 

 Shared目录中只需要复制一个文件

 

技术分享图片

复制完成后将上面的类除Controller外统一修改命名空间:【项目名称】.Models

Controller类修改命名空间:【项目名称】.Controllers

目的是在Views中不需要在引入命名空间,因为原来的Views\\_ViewImports.cshtml 中有引用

技术分享图片

 

接下来配置Client进行测试

技术分享图片

在postman中测试Hybrid模式需要注意加上scope,否则会报错

技术分享图片

 

技术分享图片

 

在配置Client的时候可以设置是否启用提示页:

new Client
{
    ClientId = "mvc",
    ClientName = "MVC Client",
    AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,

    RequireConsent = false,

    ClientSecrets =
    {
        new Secret("secret".Sha256())
    },

    RedirectUris           = { "http://localhost:5002/signin-oidc" },
    PostLogoutRedirectUris = { "http://localhost:5002/signout-callback-oidc" },

    AllowedScopes =
    {
        IdentityServerConstants.StandardScopes.OpenId,
        IdentityServerConstants.StandardScopes.Profile,
        "api1"
    },
    AllowOfflineAccess = true
}

RequireConsent=false表示不显示提示直接授权通过。

代码地址:IdentityCenter

以上是关于IdentityServer4 Hybrid 模式的主要内容,如果未能解决你的问题,请参考以下文章

IdentityServer4-前后端分离的授权验证

Identity Server 4 - Hybrid Flow - 保护API资源

IdentityServer4 自定义授权模式

关于交换机hybrid模式

Hybrid App—Hybrid App开发模式介绍和各种开发模式对比

IdentityServer4授权模式应用场景