0

私はthis公式チュートリアルからAzure Active Directory B2Cを実装しています。 コード実行時 404 - File or directory not found. The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable. 問題はURLにあり、疑問符(screenshot)が含まれています。疑問符の代わりに、手動で「?」を置き換えると、アンパサンド(&) "&"で正常に動作します。 ここに私のスタートアップクラスAzure Active Directory B2C、404エラー、予期しない疑問符がURLにあります

public partial class Startup 
    { 
     // App config settings 
     public static string ClientId = ConfigurationManager.AppSettings["ida:ClientId"]; 
     public static string ClientSecret = ConfigurationManager.AppSettings["ida:ClientSecret"]; 
     public static string AadInstance = ConfigurationManager.AppSettings["ida:AadInstance"]; 
     public static string Tenant = ConfigurationManager.AppSettings["ida:Tenant"]; 
     public static string RedirectUri = ConfigurationManager.AppSettings["ida:RedirectUri"]; 
     public static string ServiceUrl = ConfigurationManager.AppSettings["api:TaskServiceUrl"]; 

    // B2C policy identifiers 
    public static string SignUpSignInPolicyId = ConfigurationManager.AppSettings["ida:SignUpSignInPolicyId"]; 
    public static string EditProfilePolicyId = ConfigurationManager.AppSettings["ida:EditProfilePolicyId"]; 
    public static string ResetPasswordPolicyId = ConfigurationManager.AppSettings["ida:ResetPasswordPolicyId"]; 

    public static string DefaultPolicy = SignUpSignInPolicyId; 

    // API Scopes 
    public static string ApiIdentifier = ConfigurationManager.AppSettings["api:ApiIdentifier"]; 
    public static string ReadTasksScope = ApiIdentifier + ConfigurationManager.AppSettings["api:ReadScope"]; 
    public static string WriteTasksScope = ApiIdentifier + ConfigurationManager.AppSettings["api:WriteScope"]; 
    public static string[] Scopes = new string[] { ReadTasksScope, WriteTasksScope }; 

    // OWIN auth middleware constants 
    public const string ObjectIdElement = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"; 

    // Authorities 
    public static string Authority = String.Format(AadInstance, Tenant, DefaultPolicy); 

    // Initialize variables ... 

    // Configure the OWIN middleware 
    public void ConfigureAuth(IAppBuilder app) 
    { 
     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 
     app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 

     app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 
      // Generate the metadata address using the tenant and policy information 
      MetadataAddress = Authority, 

      // These are standard OpenID Connect parameters, with values pulled from web.config 
      ClientId = ClientId, 
       RedirectUri = RedirectUri, 
       PostLogoutRedirectUri = RedirectUri, 

      // Specify the callbacks for each type of notifications 
      Notifications = new OpenIdConnectAuthenticationNotifications 
       { 
        RedirectToIdentityProvider = OnRedirectToIdentityProvider, 
        AuthorizationCodeReceived = OnAuthorizationCodeReceived, 
        AuthenticationFailed = OnAuthenticationFailed, 
       }, 

      // Specify the claims to validate 
      TokenValidationParameters = new TokenValidationParameters 
       { 
        NameClaimType = "name" 
       }, 

      // Specify the scope by appending all of the scopes requested into one string (seperated by a blank space) 
      Scope = $"{OpenIdConnectScopes.OpenId} {ReadTasksScope} {WriteTasksScope}" 
      } 
     ); 
    }` 

、ここでは

<add key="ida:Tenant" value="explicarte.onmicrosoft.com" /> 
<add key="ida:ClientId" value="a2d**********************" /> 
<add key="ida:ClientSecret" value="0f**************" /> 
<add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration?p={1}" /> 
<add key="ida:RedirectUri" value="https://explicarted.azurewebsites.net/" /> 
<add key="ida:SignUpSignInPolicyId" value="B2C_1_MySignupSigninPolicy" /> 
<add key="EditProfilePolicyId" value="B2C_1_myProfileEditingPolicy" /> 
<add key="ResetPasswordPolicyId" value="B2C_1_PasswordResetPolicy" /> 
<add key="api:ApiIdentifier" value="https://explicarted.azurewebsites.net/tasks/" /> 
<add key="api:ReadScope" value="read" /> 
<add key="api:WriteScope" value="write" /> 
<add key="api:TaskServiceUrl" value="https://explicarted.azurewebsites.net/" /> 
+0

私は問題はあなたがすでに "?" idaに印を付ける:AadInstanceのURL。ライブラリコードはURLをスキャンせず、パラメータを追加するだけです。 – mikalai

答えて

2

をWebConfigのネットライブラリのいずれかで、既存のクエリ文字列パラメータを扱う周りの既知の問題があります。

これらの古いバージョンのいずれかを使用している可能性があります。具体的な問題のライブラリはMicrosoft.IdentityModel.Protocol.Extensionsだと私は思う。

このライブラリを更新するか、サンプルが正しい(更新された)ライブラリを既に持っているため、サンプルを最初に取ってください。

PS:次の権限を使用する必要があり:TFP

https://login.microsoftonline.com//{0}/{1} /v2.0/.well-known/openid-configuration

関連する問題