2017-05-26 7 views
0

私はoauth2-azureを使用しています。Azure AD OAuth2は、資格情報を入力した後、Microsoftログインにリダイレクトします。

ログインページにリダイレクトした後https://login.microsoftonline.com/common/oauth2/authorize?state=zzz&scope=&response_type=code&approval_prompt=auto&redirect_uri=http%3A%2F%2Fexample.org&client_id=xxx次のパターンがループ:

  1. 資格情報を入力し、(いずれかのparamsをGETなし)
  2. ページhttps://login.microsoftonline.com/login.srfにリダイレクト
  3. 後藤1

ログイン質問は、なぜそれがhttp://example.orgにリダイレクトされないのですか?なぜそれはログインフォームにリダイレクトし続けますか?ページにエラーはありません。

コード:私はcommonとMicrosoftアカウントのログインを設定することで、あなたの問題を再現でき

use TheNetworg\OAuth2\Client\Provider\Azure; 

// ... 

$clientId = "xxx"; 
$clientSecret = "yyy"; 
$redirectUri = "http://example.org"; 

$provider = new Azure(array 
(
    "clientId"  => $clientId, 
    "clientSecret" => $clientSecret, 
    "redirectUri" => $redirectUri 
)); 

if (!isset($_GET["code"])) 
{ 
    $authUrl = $provider->getAuthorizationUrl(); 
    $_SESSION["oauth2state"] = $provider->getState(); 
    header("location: $authUrl"); 
    die(); 
} 

// Validate state, get access token etc... 

答えて

1

:紺碧の広告1.0では

https://login.microsoftonline.com/common/oauth2/authorize?client_id=xxxxxx&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A16468%2F&scope=openid 

を、私たちはテナントに外部ユーザーとしてMicrosoftアカウントを追加することができ、ときマルチテナント環境でcommonのmicrosoft account loginを使用すると、アイデンティティプロバイダは、そのマイクロソフトアカウントにログインするテナントを知ることができません。

https://login.microsoftonline.com/YourTenant/oauth2/authorize?client_id=xxxxxx&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A16468%2F&scope=openid 

それともアズールADのV2.0を使用します:その問題を修正するには、特定のテナント使用することができます `テナントIDとcommon`の交換https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-appmodel-v2-overview

+0

をありがとう、問題を修正! Azure AD V2.0を動作させることができませんでした。「https://login.live.com/err.srf?lc = 1033#error = unauthorized_client&error_description = +クライアント+ does not not exist ...」私が試したすべての有効な範囲のURL。 – bloodleh

+0

azure ad v2.0のappは、apps.dev.microsoft.comに登録する必要があります。 [v2.0エンドポイントについての相違点](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-compare)を参照してください。 –

+0

ありがとう、私もそれを調べます。 – bloodleh

関連する問題