Özel talep sağlayıcı API'nizin sorunlarını giderme
Kimlik doğrulama olayları ve özel talep sağlayıcıları , dış sistemlerle tümleştirerek Microsoft Entra kimlik doğrulama deneyimini özelleştirmenize olanak tanır. Örneğin, bir özel talep sağlayıcısı API'si oluşturabilir ve bir OpenID Bağlan uygulaması veya SAML uygulaması yapılandırarak dış depodan talep içeren belirteçler alabilirsiniz.
Hata davranışı
API çağrısı başarısız olduğunda hata davranışı aşağıdaki gibidir:
- OpenId Bağlan uygulamaları için - Microsoft Entra Id kullanıcıyı bir hatayla istemci uygulamasına geri yönlendirir. Belirteç basılamaz.
- SAML uygulamaları için - Microsoft Entra Id, kullanıcıya kimlik doğrulama deneyiminde bir hata ekranı gösterir. Kullanıcı istemci uygulamasına geri yönlendirilmiyor.
Uygulamaya veya kullanıcıya geri gönderilen hata kodu geneldir. Sorun gidermek için hata kodları için oturum açma günlüklerine bakın.
Günlük Kaydı
Özel talep sağlayıcı REST API uç noktanızla ilgili sorunları gidermek için REST API'nin günlüğü işlemesi gerekir. Azure İşlevleri ve diğer API geliştirme platformları ayrıntılı günlüğe kaydetme çözümleri sağlar. API'lerinizin davranışı hakkında ayrıntılı bilgi almak ve API mantığınızın sorunlarını gidermek için bu çözümleri kullanın.
Microsoft Entra oturum açma günlükleri
İpucu
Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.
REST API günlüklerinize ve barındırma ortamı tanılama çözümlerinize ek olarak Microsoft Entra oturum açma günlüklerini de kullanabilirsiniz. Microsoft Entra oturum açma günlüklerini kullanarak, kullanıcıların oturum açmalarını etkileyebilecek hatalar bulabilirsiniz. Microsoft Entra oturum açma günlükleri HTTP durumu, hata kodu, yürütme süresi ve API'nin Microsoft Entra Id tarafından çağrıldığı yeniden deneme sayısı hakkında bilgi sağlar.
Microsoft Entra oturum açma günlükleri, Azure İzleyici ile de tümleşir. Uyarılar ve izleme ayarlayabilir, verileri görselleştirebilir ve güvenlik bilgileri ve olay yönetimi (SIEM) araçlarıyla tümleştirebilirsiniz. Örneğin, hata sayısı seçtiğiniz belirli bir eşiği aşarsa bildirimleri ayarlayabilirsiniz.
Microsoft Entra oturum açma günlüklerine erişmek için:
Microsoft Entra yönetim merkezinde en azından bir Bulut Uygulaması Yönetici istrator olarak oturum açın.
Kimlik>Uygulamaları>Kurumsal uygulamaları'na göz atın.
Oturum açma günlükleri'ni ve ardından en son oturum açma günlüğünü seçin.
Daha fazla ayrıntı için Kimlik Doğrulama Olayları sekmesini seçin. Hata kodları dahil olmak üzere özel kimlik doğrulama uzantısı REST API çağrısıyla ilgili bilgiler görüntülenir.
Hata kodları başvurusu
Hata kodunu tanılamak için aşağıdaki tabloyu kullanın.
Hata kodu | Hata Adı | Açıklama |
---|---|---|
1003000 | EventHandlerUnexpectedError | Olay işleyicisi işlenirken beklenmeyen bir hata oluştu. |
1003001 | CustomExtenstionUnexpectedError | Özel uzantı API'si çağrılırken beklenmeyen bir hata oluştu. |
1003002 | CustomExtensionInvalidHTTPStatus | Özel uzantı API'si geçersiz bir HTTP durum kodu döndürdü. API'nin bu özel uzantı türü için tanımlanmış kabul edilen bir durum kodu döndürdüğünü denetleyin. |
1003003 | CustomExtensionInvalidResponseBody | Özel uzantının yanıt gövdesi ayrıştırmada bir sorun oluştu. API yanıt gövdesinin bu özel uzantı türü için kabul edilebilir bir şemada olup olmadığını denetleyin. |
1003004 | CustomExtensionThrottlingError | Çok fazla özel uzantı isteği var. Azaltma sınırlarına ulaşıldığında özel uzantı API'leri çağrıları için bu özel durum oluşturulur. |
1003005 | CustomExtensionTimedOut | Özel uzantı izin verilen zaman aşımı içinde yanıt vermedi. API'nizin özel uzantı için yapılandırılmış zaman aşımı içinde yanıt verdiğini denetleyin. Erişim belirtecinin geçersiz olduğunu da gösterebilir. REST API'nizi doğrudan çağırmak için adımları izleyin. |
1003006 | CustomExtensionInvalidResponseContentType | Özel uzantının yanıt içerik türü 'application/json' değil. |
1003007 | CustomExtensionNullClaimsResponse | Özel uzantı API'si null talep paketiyle yanıt verdi. |
1003008 | CustomExtensionInvalidResponseApiSchemaVersion | Özel uzantı API'si çağrıldığı apiSchemaVersion ile yanıt vermedi. |
1003009 | CustomExtensionEmptyResponse | Bu beklenmiyorsa özel uzantı API'sinin yanıt gövdesi null idi. |
1003010 | CustomExtensionInvalidNumberOfActions | Özel uzantı API'sinin yanıtı, bu özel uzantı türü için desteklenenlerden farklı sayıda eylem içeriyor. |
1003011 | CustomExtensionNotFound | Olay dinleyicisiyle ilişkilendirilmiş özel uzantı bulunamadı. |
1003012 | CustomExtensionInvalidActionType | Özel uzantı, bu özel uzantı türü için tanımlanan geçersiz bir eylem türü döndürdü. |
1003014 | CustomExtensionIncorrectResourceIdFormat | Özel uzantının uygulama kaydının bildirimindeki identifierUris özelliği "api://{tam etki alanı adı}/{appid} biçiminde olmalıdır. |
1003015 | CustomExtensionDomainNameDoesNotMatch | Özel uzantının targetUrl ve resourceId değeri aynı tam etki alanı adına sahip olmalıdır. |
1003016 | CustomExtensionResourceServicePrincipalNotFound | Özel uzantı resourceId'sinin appId değeri kiracıdaki gerçek bir hizmet sorumlusuna karşılık gelir. |
1003017 | CustomExtensionClientServicePrincipalNotFound | Özel uzantı kaynak hizmet sorumlusu kiracıda bulunamadı. |
1003018 | CustomExtensionClientServiceDisabled | Özel uzantı kaynak hizmet sorumlusu bu kiracıda devre dışı bırakıldı. |
1003019 | CustomExtensionResourceServicePrincipalDisabled | Özel uzantı kaynak hizmet sorumlusu bu kiracıda devre dışı bırakıldı. |
1003020 | CustomExtensionIncorrectTargetUrlFormat | Hedef URL yanlış biçimde. Https ile başlayan geçerli bir URL olmalıdır. |
1003021 | CustomExtensionPermissionNotGrantedToServicePrincipal | Hizmet sorumlusu, uygulamanın özel kimlik doğrulama uzantısı HTTP istekleri alması için gereken Microsoft Graph CustomAuthenticationExtensions.Receive.Payload uygulama rolü (uygulama izni olarak da bilinir) için yönetici onayına sahip değildir. |
1003022 | CustomExtensionMsGraphServicePrincipalDisabledOrNotFound | MS Graph hizmet sorumlusu devre dışı bırakıldı veya bu kiracıda bulunamadı. |
1003023 | CustomExtensionBlocked | Özel uzantı için kullanılan uç nokta hizmet tarafından engellenir. |
1003024 | CustomExtensionResponseSizeExceededed | Özel uzantı yanıt boyutu üst sınırı aştı. |
1003025 | CustomExtensionResponseClaimsSizeExceeded | Özel uzantı yanıtında taleplerin toplam boyutu üst sınırı aştı. |
1003026 | CustomExtensionNullOrEmptyClaimKeyNotSupported | Özel uzantı API'si null veya boş anahtar içeren taleplerle yanıt verdi' |
1003027 | CustomExtension Bağlan ionError | Özel uzantı API'sine bağlanırken hata oluştu. |
REST API'nizi doğrudan çağırma
REST API'niz bir Microsoft Entra erişim belirteci ile korunur. API'nizi şu şekilde test edebilirsiniz:
- Özel kimlik doğrulama uzantılarıyla ilişkilendirilmiş bir uygulama kaydıyla erişim belirteci alma
- API test aracını kullanarak API'nizi yerel olarak test edin.
Erişim belirtecini aldıktan sonra HTTP Authorization
üst bilgisini geçirin. Erişim belirteci almak için şu adımları izleyin:
Microsoft Entra yönetim merkezinde en azından bir Bulut Uygulaması Yönetici istrator olarak oturum açın.
Kimlik>Uygulamaları>Uygulama kayıtları'na göz atın.
Daha önce belirteç verme olayı için özel talep sağlayıcısı yapılandırma bölümünde yapılandırılan Azure İşlevleri kimlik doğrulama olayları API'sinin uygulama kaydını seçin.
Uygulama kimliğini kopyalayın.
Uygulama gizli dizisi oluşturmadıysanız şu adımları izleyin:
- Sertifikalar ve gizli diziler İstemci gizli>dizileri>Yeni istemci gizli dizisi'ni seçin.
- İstemci gizli diziniz için bir açıklama ekleyin.
- Gizli dizi için bir süre sonu seçin veya özel bir yaşam süresi belirtin.
- Ekle'yi seçin.
- Gizli anahtarın değerini istemci uygulama kodunuzda kullanmak üzere kaydedin. Bu sayfadan ayrıldıktan sonra bu gizli anahtar değeri hiçbir zaman görüntülenmez.
Menüden Bir API'yi kullanıma sunma'yı seçin ve Uygulama Kimliği URI'sinin değerini kopyalayın. Örneğin,
api://contoso.azurewebsites.net/00001111-aaaa-2222-bbbb-3333cccc4444
.Tercih ettiğiniz API test aracını açın ve yeni bir HTTP sorgusu oluşturun.
HTTP yöntemini olarak
POST
değiştirin.Aşağıdaki URL'yi girin. değerini
{tenantID}
kiracı kimliğiniz ile değiştirin.https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token
Gövde'nin altında form-data'yı seçin ve aşağıdaki anahtarları ekleyin:
Anahtar Değer grant_type
client_credentials
client_id
Uygulamanızın İstemci Kimliği. client_secret
Uygulamanızın İstemci Gizli Anahtarı. scope
Uygulamanızın Uygulama Kimliği URI'si , ardından ekleyin .default
. Örneğinapi://contoso.azurewebsites.net/00001111-aaaa-2222-bbbb-3333cccc4444/.default
HTTP sorgusunu çalıştırın ve web uygulamasına https://jwt.ms kopyalayın
access_token
.değerini
iss
API'nizde yapılandırdığınız veren adıyla karşılaştırın.öğesini
aud
API'nizde yapılandırdığınız istemci kimliğiyle karşılaştırın.
Yaygın performans geliştirmeleri
En yaygın sorunlardan biri, özel talep sağlayıcı API'nizin iki saniyelik zaman aşımı içinde yanıt vermemesidir. REST API'niz sonraki yeniden denemelerde yanıt vermezse kimlik doğrulaması başarısız olur. REST API'nizin performansını geliştirmek için aşağıdaki önerileri izleyin:
- API'niz herhangi bir aşağı akış API'sine erişiyorsa, bu API'leri çağırmak için kullanılan erişim belirtecini önbelleğe alarak her yürütmede yeni bir belirtecin alınması gerekmez.
- Performans sorunları genellikle aşağı akış hizmetleriyle ilgilidir. Herhangi bir aşağı akış hizmetini çağırmak için işlem süresini kaydeden günlük kaydı ekleyin.
- API'nizi barındırmak için bir bulut sağlayıcısı kullanıyorsanız, API'yi her zaman "sıcak" tutan bir barındırma planı kullanın. Azure İşlevleri için Premium plan veya Ayrılmış plan olabilir.
- Kimlik doğrulamalarınız için otomatik tümleştirme testleri çalıştırın. Yalnızca API performansınızı test etmek için API test araçlarını da kullanabilirsiniz.