मेरे पास दो एकल किरायेदार Azure AD ऐप्स ए और बी हैं। ऐप ए एक सेवा और ऐप बी क्लाइंट का प्रतिनिधित्व करता है। मैं AAD OAuth2 क्लाइंट क्रेडेंशियल प्रवाह का उपयोग करके प्राप्त AAD JWT टोकन के साथ B को A तक पहुंचने की अनुमति देने का प्रयास कर रहा हूं। मैंने ए के लिए मेनिफेस्ट में एक appRole परिभाषित किया है और इसे App registrations -> API Permissions -> Add a permission -> My APIs -> A -> Application permissions के माध्यम से बी के लिए एपीआई अनुमति के रूप में जोड़ रहा हूं।

इसके लिए व्यवस्थापक की सहमति की आवश्यकता है, भले ही मैं दोनों ऐप्स का स्वामी हूं।

क्या किसी व्यवस्थापक हस्तक्षेप की आवश्यकता के बिना यह अनुमति देने का कोई तरीका है क्योंकि मेरे पास ऐप भूमिका को उजागर करने वाला ऐप है? मैं उस निर्देशिका को एक्सेस करने की अनुमति देते समय व्यवस्थापक की सहमति की आवश्यकता को समझता हूं जिसमें संवेदनशील उपयोगकर्ता डेटा हो सकता है लेकिन यहां यह विशुद्ध रूप से दो ऐप्स के बीच की अनुमति है जिसका मैं स्वामी हूं।

ऐप ए के लिए मेनिफेस्ट में ऐप भूमिका इस प्रकार है:

{
    "allowedMemberTypes": [
        "User",
        "Application"
    ],
    "description": "...",
    "displayName": "MyPermission",
    "id": "00000000-aaaa-bbbb-cccc-ddddddddddddd",
    "isEnabled": true,
    "lang": null,
    "origin": "Application",
    "value": "MyPermission"
}
0
mmajis 1 अक्टूबर 2020, 22:05

1 उत्तर

सबसे बढ़िया उत्तर

दुर्भाग्य से, यह संभव नहीं है! क्लाइंट एप्लिकेशन को एप्लिकेशन अनुमतियां देते समय आपको व्यवस्थापक सहमति देनी होगी। अन्यथा, यह आपको "अपर्याप्त अनुमतियां" संकेत देगा जब आप एपीआई एप्लिकेशन तक पहुंचने के लिए एक्सेस टोकन का उपयोग करते हैं।

आप देख सकते हैं कि जब आप क्लाइंट एप्लिकेशन को अपनी कस्टम एप्लिकेशन अनुमतियां देते हैं, तो Admin consent required को Yes के रूप में प्रदर्शित किया जाता है, यह दर्शाता है कि यह AAD द्वारा अनिवार्य है और आप इस चरण को बायपास नहीं कर सकते।

enter image description here

इसके अलावा, आप टोकन को पार्स करके भी देख सकते हैं। केवल अगर व्यवस्थापक आवेदन की अनुमति की सहमति देता है, तो टोकन में roles दावा होगा, अन्यथा यह दावा प्रदर्शित नहीं करेगा।

enter image description here

1
Carl Zhao 2 अक्टूबर 2020, 06:11