問題タブ [identity-delegation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ブートストラップトークンから Office 365 にログオンするための新しい ADFS トークンを取得する
私はこのシナリオを達成しようとしています (サーバー側の C# で SharePoint Web パーツを開発しています):
つまり、まだ決定されていない API (EWS またはそうしないと)。
SharePoint (オンプレミス) と Exchange Online の両方が同じ ADFS に接続されています。
最初のステップは、ADFS から新しいトークンを取得することです (次に、Office 365 から、ADFS によって提供されたトークンから別のトークンを取得し、O365 トークンを使用して Exchange Online API を呼び出します...ここで間違っていますか?)。
つまり、現在の接続で使用されている「bootstraptoken」に基づいて、現在のユーザーの新しいトークンを取得したいと考えています。
これが私が持っている最初のコードです:
これは次のように失敗しますchannel.Issue
。
署名トークン System.IdentityModel.Tokens.SamlSecurityToken にはキーがありません。セキュリティ トークンは、暗号化操作を実行する必要があるコンテキストで使用されますが、トークンには暗号化キーが含まれていません。トークン タイプが暗号化操作をサポートしていないか、特定のトークン インスタンスに暗号化キーが含まれていません。構成を調べて、暗号操作が必要なコンテキスト (承認サポート トークンなど) で、暗号的に無効なトークン タイプ (UserNameSecurityToken など) が指定されていないことを確認します。
次に、Travis Spencer hereの提案に従いました。私はそのコードで終わった:
しかし、今では失敗します:
保護されていない、または誤って保護された障害が相手から受信されました。障害コードと詳細については、内部の FaultException を参照してください。
内部メッセージ: メッセージ内
のセキュリティ トークンの処理中にエラーが発生しました。
次に何を試すことができますか?
ユーザーが ADFS 経由で既にログオンしているときに、Office 365 にアクセスするための新しいトークンを取得する方法を教えてください。