注:我正在使用微軟最新adal的實驗性預發行版本ADAL無效的重定向uri
我試圖讓我的身份提供者在移動應用程序上工作。到目前爲止,我已經能夠加載我的身份提供商並設法讓登錄頁面顯示(除了facebook)。
問題是,每當我實際嘗試登錄我收到「無效的重定向uri」形式的一些錯誤。
谷歌,例如,會說:「在請求重定向URI:https://login.microsoftonline.com/ ...沒有匹配的註冊重定向URI
Facebook將顯示:」鑑於URL不是由應用程序配置允許的:應用程序的設置不允許使用一個或多個給定的URL。它必須與網站URL或Canvas URL匹配,或者該域名必須是其中一個應用域的子域名。「
據我瞭解,您實際上不需要再註冊移動應用程序與不同身份因爲Azure位於你和他們之間,Azure處理連接,獲取你的令牌並用它來識別你,然後它應該返回一組「藍色令牌」給你
據我所知使用的重定向URI因爲我能夠首先加載身份提供商嗎? 更不用說它似乎是許多應用程序使用的默認URL:urn:ietf:wg:oauth:2.0:oob
只是告訴它將它返回給某些非瀏覽器基於應用程序?
這是我使用的代碼進行實際的登錄/註冊:
private static String AUTHORITY_URL = "https://login.microsoftonline.com/<directory>/oauth2/authorize/";
private static String CLIENT_ID = "my_client_id";
private static String[] SCOPES = { "my_client_id" };
private static String[] ADDITIONAL_SCOPES = { "" };
private static String REDIRECT_URL = "urn:ietf:wg:oauth:2.0:oob";
private static String CORRELATION_ID = "";
private static String USER_HINT = "";
private static String EXTRA_QP = "nux=1";
private static String FB_POLICY = "B2C_1_<your policy>";
private static String EMAIL_SIGNIN_POLICY = "B2C_1_SignIn";
private static String EMAIL_SIGNUP_POLICY = "B2C_1_SignUp";
public async Task<AuthenticationResult> Login(IPlatformParameters parameters, bool isSignIn)
{
var authContext = new AuthenticationContext(AUTHORITY_URL, new TokenCache());
if (CORRELATION_ID != null &&
CORRELATION_ID.Trim().Length != 0)
{
authContext.CorrelationId = Guid.Parse(CORRELATION_ID);
}
String policy = "";
if (isSignIn)
policy = EMAIL_SIGNIN_POLICY;
else
policy = EMAIL_SIGNUP_POLICY;
return await authContext.AcquireTokenAsync(SCOPES, ADDITIONAL_SCOPES, CLIENT_ID, new Uri(REDIRECT_URL), parameters, UserIdentifier.AnyUser, EXTRA_QP, policy);
}
微軟的文檔是不是真的幫助,因爲大多數要麼是空的(他們硬是沒有打出來)或這是一年前的一些幫助話題。這個東西很新,所以文件看起來很難。
所以,親愛的人的stackoverflow,我錯過了什麼?它爲什麼說當它在azure web門戶上註冊時,重定向urI是無效的?如果重定向URI無效,爲什麼我可以首先檢索身份提供者?
剛開始這個相同的練習。很高興知道要注意的項目。 – Rajesh