iOS/macOS için MSAL'de oturum açma

Microsoft Authentication Library (MSAL) uygulamaları sorunları tanılamaya yardımcı olabilecek günlük iletileri oluşturur. Bir uygulama birkaç kod satırıyla günlüğe kaydetmeyi yapılandırabilir ve ayrıntı düzeyi ile kişisel ve kuruluş verilerinin günlüğe kaydedilip kaydedilmediği üzerinde özel denetime sahip olabilir. Bir MSAL günlük uygulaması oluşturmanızı ve kullanıcıların kimlik doğrulaması sorunları olduğunda günlük göndermeleri için bir yol sağlamanızı öneririz.

Günlük düzeyleri

MSAL, çeşitli günlükleme ayrıntı düzeyleri sunar:

  • LogAlways: Bu günlükleme düzeyinde düzey tabanlı filtreleme yapılmaz. Tüm düzeylerdeki günlük mesajları kaydedilecektir.
  • Kritik: Kurtarılamayan bir uygulamayı veya sistem kilitlenmesini ya da acil dikkat gerektiren yıkıcı bir hatayı açıklayan günlükler.
  • Hata: Bir sorun oluştuğunu ve bir hata oluşturulduğunu gösterir. Hata ayıklama ve sorunları tanımlama için kullanılır.
  • Uyarı: Bu, mutlaka bir hata ya da başarısızlık olduğu anlamına gelmez; ancak tanılama yapmak ve sorunların kaynağını tam olarak belirlemek için tasarlanmıştır.
  • Bilgilendirilme: MSAL, hata ayıklamaya yönelik olması gerekmeyen bilgilendirme amaçlı olayları günlüğe kaydeder.
  • Ayrıntılı (Varsayılan): MSAL, kitaplık davranışının tüm ayrıntılarını günlüğe kaydeder.

Note

Tüm MSAL SDK’ları için tüm günlükleme düzeyleri mevcut değildir.

Kişisel ve kurumsal veriler

Varsayılan olarak, MSAL günlükçü son derece hassas kişisel veya kuruluş verilerini yakalamaz. Kitaplık, siz karar verirseniz kişisel ve kurumsal verilerin günlüğe kaydedilmesini etkinleştirme seçeneği sunar.

Aşağıdaki bölümlerde uygulamanız için MSAL hata günlüğü hakkında daha fazla ayrıntı sağlanır.

iOS ve macOS için MSAL logging-ObjC

MSAL günlüğünü yakalamak için bir geri çağırma ayarlayın ve bunu kendi uygulamanızın günlüğüne dahil edin. Geri çağırma işlevinin imzası şu şekildedir:

/*!
    The LogCallback block for the MSAL logger

    @param  level           The level of the log message
    @param  message         The message being logged
    @param  containsPII     If the message might contain Personally Identifiable Information (PII)
                            this will be true. Log messages possibly containing PII will not be
                            sent to the callback unless PIllLoggingEnabled is set to YES on the
                            logger.

 */
typedef void (^MSALLogCallback)(MSALLogLevel level, NSString *message, BOOL containsPII);

Örneğin:

[MSALGlobalConfig.loggerConfig setLogCallback:^(MSALLogLevel level, NSString *message, BOOL containsPII)
    {
        if (!containsPII)
        {
#if DEBUG
            // IMPORTANT: MSAL logs may contain sensitive information. Never output MSAL logs with NSLog, or print, directly unless you're running your application in debug mode. If you're writing MSAL logs to file, you must store the file securely.
            NSLog(@"MSAL log: %@", message);
#endif
        }
    }];

Kişisel veri

MSAL varsayılan olarak kişisel verileri yakalamaz veya günlüğe kaydetmez. Kitaplık, uygulama geliştiricilerinin bunu MSALLogger sınıfındaki bir özellik aracılığıyla açmasına olanak tanır. uygulamasını açarak pii.Enabled, uygulama son derece hassas verileri güvenli bir şekilde işleme ve mevzuat gereksinimlerini takip etme sorumluluğunu üstlenir.

// By default, the `MSALLogger` doesn't capture any PII

// PII will be logged
MSALGlobalConfig.loggerConfig.piiEnabled = YES;

// PII will NOT be logged
MSALGlobalConfig.loggerConfig.piiEnabled = NO;

Günlük düzeyleri

iOS ve macOS için MSAL kullanarak günlüğe kaydetme düzeyini ayarlamak için aşağıdaki değerlerden birini kullanın:

Level Description
MSALLogLevelNothing Tüm günlüklemeyi devre dışı bırak
MSALLogLevelError Varsayılan düzey, bilgileri yalnızca hatalar oluştuğunda yazdırır
MSALLogLevelWarning Warnings
MSALLogLevelInfo Parametreler ve çeşitli anahtarlık işlemleriyle kitaplık giriş noktaları
MSALLogLevelVerbose API izleme

Örneğin:

MSALGlobalConfig.loggerConfig.logLevel = MSALLogLevelVerbose;

Günlük iletisi biçimi

MSAL günlük iletilerinin ileti bölümü şu biçimdedir: TID = <thread_id> MSAL <sdk_ver> <OS> <OS_ver> [timestamp - correlation_id] message

Örneğin:

TID = 551563 MSAL 0.2.0 iOS Sim 12.0 [2018-09-24 00:36:38 - 36764181-EF53-4E4E-B3E5-16FE362CFC44] acquireToken returning with error: (MSALErrorDomain, -42400) User cancelled the authorization session.

Bağıntı kimlikleri ve zaman damgaları sağlamak, sorunları izlemek için yararlıdır. Zaman damgası ve bağıntı kimliği bilgileri günlük iletisinde bulunur. Bunları elde etmek için tek güvenilir kaynak MSAL günlükleme iletileridir.

Sonraki Adımlar

Daha fazla kod örneği için bkz. Microsoft kimlik platformu kod örnekleri.