أستخدم مجموعات SAML لمصادقة المستخدمين لفئات مختلفة. عندما تتغير المجموعات، يحتاج المستخدم إلى تسجيل الدخول. أريد أتمتة هذا في موفر الهوية الخاص بي. عندما تتغير المجموعات، فإنه يستخدم واجهة برمجة التطبيقات لتسجيل خروج المستخدم
curl -X POST “https://mydiscourse.org/admin/users//log_out.json” -H “Content-Type: application/json” -H “Api-Key: XXXX” -H “Api-Username: Admin” -v
مع رمز واجهة برمجة التطبيقات (API-Token) الذي يمتلك حق تسجيل الخروج فقط، يمكن القيام بذلك بأمان شديد.
ومع ذلك، لا يمتلك موفر الهوية (IDP) المعرف الرقمي للمستخدم. إنه يمتلك فقط رقمًا فريدًا.
لقد اكتشفت بالفعل كيفية تسجيل خروج المستخدم عبر وحدة التحكم، والدخول إلى التطبيق وتشغيل rails c
uaa = UserAssociatedAccount.find_by(provider_name: “saml”, provider_uid: “123456”)
user = uaa.user
user.user_auth_tokens.destroy_all
لذلك، كانت فكرتي هي إنشاء نقطة نهاية مخصصة، مع استخدام مشابه
curl -X POST https://mydiscourse.org/custom/saml-logout/123456 -H “Api-Key: xxx” -H “Api-Username: Admin” -H “Accept: application/json”
هذا إما يمرر ببساطة رمز المصادقة المستلم إلى واجهة برمجة التطبيقات الرسمية، وهي الطريقة الأكثر أمانًا على الأرجح. يمكن الحصول على المعرف (ID) عبر user.id (انظر الجزء العلوي).
أو يقوم بتنفيذ
uaa = UserAssociatedAccount.find_by(provider_name: “saml”, provider_uid: “123456”)
user = uaa.user
user.user_auth_tokens.destroy_all
هل توجد إضافات بسيطة يمكنني فيها ببساطة لصق هذه القطعة الصغيرة من التعليمات البرمجية؟ أنا لست مبرمج روبي، ولكن هذه مجرد بضعة أسطر من التعليمات البرمجية. يجب أن يكون هذا ممكنًا في غضون دقائق قليلة.
شكرًا جزيلاً على مساعدتكم.