プログラムでAzure ADでアプリケーションを作成しようとしています。 管理ポータルに初期アプリケーションを追加し、Graph ApiとActiveディレクトリ(両方でディレクトリの読み込み/書き込み)にアクセス権を与えました。Azure ADのグラフAPIを使用してアプリケーションを作成するときに 'Service_InternalServerError'を取得する
まず私は認証コードを取得し、サンプルURLの形成は以下の通りです:
その後uri = Addressable::URI.parse('https://login.microsoftonline.com/common/oauth2/authorize')
uri.query_values = {
response_type: 'code',
response_mode: 'form_post',
client_id: <Application ID>,
redirect_uri: <Redirect URI>,
resource: 'https://graph.windows.net/',
state: <UUID>,
}
I認証怒鳴るリクエストを通じてトークンを取得:
client = OAuth2::Client.new(client_id,
client_secret,
:site => 'https://login.microsoftonline.com',
:authorize_url => '/common/oauth2/authorize',
:token_url => '/common/oauth2/token')
auth_token = client.auth_code.get_token(auth_code,
:redirect_uri => redirect_uri,
:scope => 'openid'
は最終的に私はアプリケーションのエンドポイントに、グラフAPI呼び出しを行うことができますアプリを追加するには:
graph_url = 'https://graph.windows.net/<TENANT ID>/applications?api-version=1.6'
body = {
'identifierUris' => ['<URI>'],
'availableToOtherTenants' => true,
'homepage' => <Home PAGE>,
'replyURLs' => <SOME REPLY URL>,
'displayName' => <APP DISPLAY NAME>,
}
headers = {'Content-Type' => 'application/json','Authorization' => "Bearer #{auth_token.token}"}
conn = Faraday.new(graph_url, {headers: headers})
res = conn.post graph_url, body.to_json
回答では、 hはあまり説明的ではなく、何が間違っているかわからない:
何か提案があります。
ここでは私のために働いたサンプルの要求があります。私は過去に、このような問題を避ける本当に簡単な方法は、似たようなオブジェクトの「GET」を行い、そのオブジェクトを変更して新しいプロパティを含むようにし、それをあなたのPOSTに使うことです。たとえば、Azure Portalを使用してアプリケーションを作成し、そのアプリケーションのスケルトンを使用してPOSTリクエストで新しいアプリケーションを作成します。別のヒントは、PowerShellのHTTPトラフィック、またはグラフを使用してアプリケーションを作成できる別のサービスを取得するためにFiddlerを使用し、それを使用して自分の身体を作成することです。 –
このチップをお寄せいただきありがとうございます。 – natia