ClientAssertionCertificateを使用してADFS(Windows server 2012R2)からJWTを取得できません。CでClientAssertionCertificateを使用してADFS(Windows server 2012R2)からJWTを取得する方法
ユーザーが自分のユーザー名とパスワードで認証してadfsログインウィンドウに直接入れることはできますが、自分のアプリケーションのユーザーがADFSログインウィンドウを表示しないようにしたい資格情報を知っていません。私のアプリケーションは実際には(APIの)ユーザーであるため、証明書を使用して認証したい。私はそれをやってみたとき、私は、認証サーバは、要求されたgrant_type
サポートしていません」というメッセージが表示されます。認証サーバのみauthorization_code
や補助金型としてrefresh_token
サポートしています。
誰もが任意の回避策やJWTを得るために他の方法を知っています?ADFSは、証明書を使用してから多くのことを、THX
私のアプリケーションは、ネット4.6.1コンソールアプリケーションです
は、これが今の私のコードです:!。
var certPath = Path.Combine(GetCurrentDirectoryFromExecutingAssembly(), "mycertificate.pfx");
var certfile = File.OpenRead(certPath);
var certificateBytes = new byte[certfile.Length];
certfile.Read(certificateBytes, 0, (int)certfile.Length);
var cert = new X509Certificate2(
certificateBytes,
"mypassword",
X509KeyStorageFlags.Exportable |
X509KeyStorageFlags.MachineKeySet |
X509KeyStorageFlags.PersistKeySet);
var certificate = new ClientAssertionCertificate("myclientid", cert);
AuthenticationContext context = new AuthenticationContext("https://sts.example.com/adfs",false);
AuthenticationResult authenticationResult = await context.AcquireTokenAsync("http://example.com/api", certificate);
var token = authenticationResult.AccessToken;
Thx Tommy!できます!私は過去5日間これを探しています! –