美文网首页
自定义授权类型

自定义授权类型

作者: 灭蒙鸟 | 来源:发表于2017-02-25 18:07 被阅读334次

    layout: docs-default

    自定义授权类型

    令牌 endpoint 可以扩展接受自定义授权类型。
    下面是用自定义授权类型申请令牌的例子。

    POST /connect/token
    Authorization: Basic xxx:yyy
    
    grant_type=my_custom_credential&
    scope=api1&
    my_credential=foobar&
    some_other_parameter=quux&
    

    使用IdentityServer的扩展机制,我们可以注册一个自定义授权的验证器来使用验证my_custom_credential`.
    自定义授权验证器的工作室验证传入的数据,并把他映射到IdentityServer的用户上。
    首先需要实现下面的接口:

    public interface ICustomGrantValidator
    {
        Task<CustomGrantValidationResult> ValidateAsync(ValidatedTokenRequest request);
        string GrantType { get; }
    }
    

    GrantType 属性用来指定哪一个自定义授权类型,这个验证器回来处理。ValidateAsync方法用来获取原始请求中的数据 (比如:像例子中的读取自定义的参数)并验证像作用域和客户端id等工作。
    验证结果或者是一个映射到用户的Principal(带声明),或者是一个错误信息。
    通过下面的方法来注册自定义授权验证器:

    factory.CustomGrantValidators.Add( 
        new Registration<ICustomGrantValidator, MyCustomGrantValidator>());
    

    要使用这个自定义验证器,需要按照下面的方法来定义配置:

    • Flow 必须设置为 Custom
    • AllowedCustomGrantTypes必须包含自定义授权类型
      典型的自定义验证器用来在令牌类型间转换(比如:SAML到JWT或者Facebook到JWT),来桥接这两个身份管理系统。

    请参看 rfc7521 - Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants 了解更多。

    相关文章

      网友评论

          本文标题:自定义授权类型

          本文链接:https://www.haomeiwen.com/subject/aklmyttx.html