私は認証のためにベアラトークンをサポートするAPIを持っています。IdentityServerクライアントの一意の識別番号
カスタムアカウントと外部ログインがあります。ユーザーがapiにアクセスすると、データを関連付けるユーザーの固有の識別子にアクセスしたいと考えています。
私は最初にこのテーマについて考えましたが、主張の主張はありません。対象は正しいのではないのですか?または私は設定が不足していますか? UniqueNameIdentifierが私が使用すべきものなら?
user.Claims.First(I => I.Type == ClaimTypes.NameIdentifier).Value;
私はNameIdentifierはIDが含まれていることがわかります外部プロバイダ(Facebookの)で認証によって作成されたアクセストークンを使用するので、これは信頼性はありますか?
また、このIDサーバーで認証されたWebサイトもあります。そこでsubjectが返され、このnameIdentifierと同じ値を持つことがわかります。しかし、なぜオフセットがあるのですか?なぜ、api configに値がsubjecとして返されないのですか?
がかかりAPIの
私の設定が推奨される方法は何ですか:
string identServer = ConfigurationManager.AppSettings["pluto:identity:server:url"];
app.UseIdentityServerBearerTokenAuthentication(new IdentityServer3.AccessTokenValidation.IdentityServerBearerTokenAuthenticationOptions()
{
Authority = identServer ,
});
とindentityサーバでの設定です:
return new Client
{
Enabled = true,
ClientId = "pluto",
ClientName = "Pluto Site",
ClientSecrets = new List<Secret>
{
new Secret("foo".Sha256())
},
Flow = Flows.ResourceOwner,
AllowedScopes = new List<string>
{
Constants.StandardScopes.OpenId,
"read"
}
};
私は外部プロデューサで認証したときに被験者が変化している時間を形成するいくつかの問題を抱えています。https://stackoverflow.com/questions/39895086/identityserver-with-facebookprovider-use-subject- as-userid –