لا يمكن للأمر Convert سبويبابليكيشن التحويل من المطالبات في Windows إلى SAML في SharePoint Server 2013

ينطبق على: SharePoint Foundation 2013SharePoint Server 2013

مؤشرات الخطأ


اطّلع على السيناريو التالي:
  • يمكنك استخدام مصادقه مطالبات Windows (عبر ارتياب/استجابه Windows [NTLM] أو Kerberos) في تطبيق Microsoft SharePoint Server 2013 web.
  • انك قررت التبديل إلى مطالبات الموفرين الموثوق بهم باستخدام الموفر القائم علي لغة تمييز التطبيقات الامنه (SAML) مثل خدمات Active directory المشتركة (AD FS).
  • يمكنك مراجعه الخطوات الواردة في عمليه ترحيل مصادقه مطالبات Windows إلى مصادقه مطالبات تستند إلى SAML في الموضوع SharePoint Server 2013 علي موقع Microsoft Developer NETWORK (MSDN) علي ويب.
  • تقوم بتشغيل الأمر التالي:
    تحويل-سبويبابليكيشن معرفات ال$wa-إلى المطالبات-موثوق به-التروستيدبروفيدير $tp-سورسيسكيبليست $csv-ريتاينبيرميسيونس
في هذا السيناريو ، تتلقي رسالة الخطا التالية:
مصادقه المطالبة المستندة إلى SAML غير متوافقة.

السبب


تحدث هذه المشكلة لان مصدر الرمز المميز للهوية الموثوق به لم يتم إنشاؤه باستخدام التكوين الافتراضي. يجب ان يتم استخدام التكوين الافتراضي للأمر Convert-سبويبابليكيشن للعمل بشكل صحيح. يتطلب الأمر Convert سبويبابليكيشن تكوينا معينا للموفر الموثوق به لكي يكون متوافقا مع التحويل من مطالبات WINDOWS إلى SAML أو العكس. وبشكل خاص ، يجب إنشاء مصدر الرمز المميز للهوية الموثوق به باستخدام المعلمتين أوسيديفولتكونفيجوريشن و إيدينتيفيركلايميس . يمكنك التحقق مما إذا تم إنشاء مصدر الرمز المميز للهوية الموثوق به باستخدام المعلمة أوسيديفولتكونفيجوريشن عن طريق تشغيل البرامج النصية التالية ل Windows PowerShell.ملاحظه تفترض هذه البرامج النصية انه لديك موفر هويه موثوق به واحد فقط تم إنشاؤه داخل المزرعة الحالية.
$tp = Get-SPTrustedIdentityTokenIssuer$tp.claimtypes 
أنواع المطالبات التي يجب علي هذا البرنامج النصي ان يتم إخراجها كما يلي:
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
#Get the Identity claim:$tp = Get-SPTrustedIdentityTokenIssuer$tp.IdentityClaimTypeInformation 
يجب ان تكون دعوى الهوية واحده مما يلي:
  • WindowAccountName
  • EmailAddress
  • ال
مثال إخراج ل$tp. إيدينتيتيكليمتيبينفورميشن: DisplayName: البريد الكتروني إينبوتكليمتيبي: Http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressمابيدكليمتيبي: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress#IsIdentityClaim : True يجب ان يكون موفر مطالبات مخصصا بالاسم نفسه لمصدر الرمز المميز ، ويجب ان يكون من النوع سبتروستيدباكيدبياكتيفديريكتوريكليمبروفيدير. قم بتشغيل هذا لمعرفه ما إذا كان موفر المطالبة موجودا ومتوافقا:
 $tp = Get-SPTrustedIdentityTokenIssuer$name = $tp.name$cp = Get-SPClaimProvider $nameif($cp.typename -match "SPTrustedBackedByActiveDirectoryClaimProvider"){write-host "Claim provider is present and has TypeName of " $cp.typename " it should be valid"}else{write-host "Claim provider is not present. Trusted Identity Token Issuer" $tp.name " is not compatible with convert-spwebapplication"}

الحل


لحل هذه المشكلة ، قم بحذف مصدر الرمز المميز لهويه موثوق به ثم أعاده إنشائه. للقيام بذلك، اتبع الخطوات التالية:
  1. قم بتشغيل البرنامج النصي التالي:
    $tp = Get-SPTrustedIdentityTokenIssuer$tp | fl$tp.name$tp.IdentityClaimTypeInformation
    قم بإنشاء نسخه من إخراج هذا البرنامج النصي للرجوع اليه في المستقبل. بشكل خاص ، نحتاج إلى قيمه الخاصية Name ، بحيث يمكن إنشاء مصدر الرمز المميز الجديد باستخدام الاسم نفسه ، ونحتاج إلى المطالبة بالهوية حتى يمكن إنشاء موفر المطالبة الجديد باستخدام المطالبة بالهوية نفسها. طالما يتم استخدام الاسم نفسه لمصدر الرمز المميز ويتم استخدام المطالبة نفسها كمطالبه بالهوية ، سيحتفظ كل المستخدمين بأذوناتهم داخل تطبيق ويب بعد أعاده إنشاء مصدر الرمز المميز.
  2. أزاله موفر الهوية الموثوق به الحالي من موفري المصادقة لأي تطبيق ويب يستخدمه حاليا.
  3. احذف مصدر الرمز المميز عن طريق تشغيل الأمر التالي:
    Remove-SPTrustedIdentityTokenIssuer -Identity "TheNameOfYourTokenIssuer"
  4. أعد إنشاء مصدر الرمز المميز. للقيام بذلك ، اتبع الخطوات الواردة في الموضوع تطبيق المصادقة المستندة إلى SAML في SharePoint Server 2013 علي موقع Microsoft TechNet علي ويب للحصول علي مزيد من المعلومات.هام عند تشغيل الأمر سبتروستيديدينتيتيتوكينيسوير الجديد ، يجب استخدام المعلمتين أوسيديفولتكونفيجوريشن و إيدينتيفيركلايميس . المعلمة أوسيديفولتكونفيجوريشن عبارة عن مفتاح تبديل فقط. القيم المحتملة لمعلمه إيدينتيفيركلايميس هي علي الشكل التالي:
    • الحساب-الاسم
    • الكتروني
    • المستخدم-الاسم الأساسي
    مثال لبرنامج نصي:
    $ap = New-SPTrustedIdentityTokenIssuer -Name $tokenIdentityProviderName -Description $TrustedIdentityTokenIssuerDescription -realm $siteRealm -ImportTrustCertificate $adfsCert-SignInUrl $signInUrl -UseDefaultConfiguration -IdentifierClaimIs EMAIL -RegisteredIssuerName $siteRealm
  5. في الاداره المركزية ، أضف مصدر الرمز المميز الجديد الموثوق به إلى موفري المصادقة لتطبيق ويب الذي تحاول تحويله. يجب ان يحتوي تطبيق ويب علي كل من مصادقه Windows وموفر الهوية الموثوق به الهدف محددا .

مزيد من المعلومات


تلميحات اضافيه للتحويل بنجاح: إذا تم استخدام قيمه البريد الكتروني لمطالبه المعرف (اي ، للمعلمة إيدينتيفيركلايميس ) ، سيتم فقط تحويل هؤلاء المستخدمين الذين تم تعبئة عناوين البريد الكتروني الخاصة بهم في active directory. لن يتم تحويل اي حسابات مستخدمين مدرجه في ملف .csv المحدد في المعلمة سورسيسكيبليست إلى SAML. بالنسبة إلى التحويل من المطالبات في Windows إلى SAML ، يمكن سرد أسماء حسابات المستخدمين باستخدام منهج المطالبات أو بدونها. علي سبيل المثال ، فان "contoso\user1" أو "i:0 #. w | contoso\user1" مقبول. يجب ان تضيف إلى ملف csv هذا اي حسابات مستخدمين لا تريد تحويلها. يجب ان تشمل هذه الواجبات حسابات الخدمات وحسابات المسؤولين.