Oauth 2.0 ADFS 2012 R2是否支持Auth2资源所有者密码凭据流

Oauth 2.0 ADFS 2012 R2是否支持Auth2资源所有者密码凭据流,oauth-2.0,adfs2.1,Oauth 2.0,Adfs2.1,我想确认ADFS支持oAuth 2.0完全支持oAuth 2.0的所有流程,即 三足非洲人 双腿骨 隐式流 我问这个问题是因为我尝试使用资源所有者密码流(两条腿的Oauth)。这是我的密码 using (HttpClient client = new HttpClient()) { string creds = String.Format("{0}:{1}", "hello@ADFS FQDN

我想确认
ADFS
支持
oAuth 2.0
完全支持
oAuth 2.0

的所有流程,即

  • 三足非洲人

  • 双腿骨

  • 隐式流

  • 我问这个问题是因为我尝试使用资源所有者密码流(两条腿的Oauth)。这是我的密码

                    using (HttpClient client = new HttpClient())
                    {
                        string creds = String.Format("{0}:{1}", "hello@ADFS FQDN", "christ");
                        byte[] bytes = Encoding.ASCII.GetBytes(creds);
                        var header = new AuthenticationHeaderValue("Basic",
                                                   Convert.ToBase64String(bytes));
    
    
                        client.DefaultRequestHeaders.Authorization = header;
    
                        var postData = new List<KeyValuePair<string, string>>();
    
                        postData.Add(new KeyValuePair<string, string>
                                           ("grant_type", "password"));
    
    
                        HttpContent content = new FormUrlEncodedContent(postData);
    
                        token = client.PostAsync("http://adfs FQDN/adfs/oauth2/token/", content)
                                         .Result.Content.ReadAsStringAsync().Result;
                    }
    
    使用(HttpClient=new HttpClient())
    {
    string creds=string.Format(“{0}:{1},”hello@ADFS“基督”);
    byte[]bytes=Encoding.ASCII.GetBytes(creds);
    var header=新的AuthenticationHeaderValue(“基本”,
    Convert.tobase64字符串(字节));
    client.DefaultRequestHeaders.Authorization=头;
    var postData=新列表();
    添加(新的KeyValuePair)
    (“授权类型”、“密码”);
    HttpContent=新的FormUrlEncodedContent(postData);
    令牌=客户端。PostAsync(“http://adfs FQDN/adfs/oauth2/token/“,内容)
    .Result.Content.ReadAsStringAsync().Result;
    }
    
    它给了我一个错误
    grant\u Type=不支持密码

    当我查看我的ADFS 2012 R2机器事件查看器日志时,它也给出了错误提示

    “授权服务器不支持请求的‘授权类型’:‘密码’。授权服务器当前仅支持‘授权类型=授权代码’。”

    请帮助我如何实现此流程?

    AD FS 3.0(2012 R2)不支持OAuth 2.0的grant\u type=password,但它只支持grant\u type=authorization\u codegrant\u type=refresh\u token。AD FS提供WS-Trust端点,您可以使用它们代替OAuth 2.0端点来发布和交换令牌。WS-Trust为不同类型的身份验证提供端点