Referentie voor BHOLD-ontwikkelaars voor Microsoft Identity Manager 2016
De BHOLD-core-module kan scriptopdrachten verwerken. U kunt dit rechtstreeks doen met behulp van de bscript.dll in een .NET-project. Ook interactie met de webservice b1scriptservice.asmx-interface.
Voordat een script is uitgevoerd, moet alle informatie in het script worden verzameld om dit script op te stellen. Deze informatie kan worden verzameld uit de volgende bronnen:
- Gebruikersinvoer
- BHOLD-gegevens
- Toepassingen
- Anders
De BHOLD-gegevens kunnen worden opgehaald met behulp van de functie GetInfo van het scriptobject. Er is een volledige lijst met opdrachten waarmee alle gegevens kunnen worden weergegeven die zijn opgeslagen in de BHOLD-database. De gepresenteerde gegevens zijn echter onderhevig aan de weergavemachtigingen van de gebruiker die is aangemeld. Het resultaat is in de vorm van een XML-document dat kan worden geparseerd.
Een andere bron voor informatie kan een van de toepassingen zijn die worden beheerd door BHOLD. De toepassingsmodule heeft een speciale functie, FunctionDispatch, die kan worden gebruikt om toepassingsspecifieke informatie weer te geven. Dit wordt ook weergegeven als een XML-document.
Ten slotte, als er geen andere manier is, kan het script opdrachten rechtstreeks naar andere toepassingen of systemen bevatten. NoThenstalling van extra software op de BHOLD-server kan de beveiliging van het hele systeem ondermijnen.
Al deze informatie wordt in één XML-document geplaatst en toegewezen aan het BHOLD-scriptobject. Het object combineert dit document met een vooraf gedefinieerde functie. De vooraf gedefinieerde functie is een XSL-document waarmee het scriptinvoerdocument wordt omgezet in een BHOLD-opdrachtdocument.
De opdrachten worden in dezelfde volgorde uitgevoerd als in het document. Als één functie mislukt, worden alle uitgevoerde opdrachten teruggedraaid.
Scriptobject
In deze sectie wordt beschreven hoe u het scriptobject gebruikt.
BHOLD-informatie ophalen
De functie GetInfo wordt gebruikt om informatie op te halen uit de beschikbare gegevens in het BHOLD-autorisatiesysteem. De functie vereist een functienaam en uiteindelijk een of meer parameters. Als deze functie slaagt, wordt een BHOLD-object of -verzameling geretourneerd in de vorm van een XML-document.
Als de functie niet slaagt, retourneert de functie GetInfo een lege tekenreeks of een fout. De foutbeschrijving en het nummer kunnen worden gebruikt om meer informatie over de fout op te halen.
De GetInfo-functie 'FunctionDispatch' kan worden gebruikt om informatie op te halen uit een toepassing die wordt beheerd door het BHOLD-systeem. Voor deze functie zijn drie parameters vereist: de id van de toepassing, de verzendfunctie zoals deze is gedefinieerd in de ASI en een XML-document met ondersteunende informatie voor de ASI. Als de functie slaagt, is het resultaat beschikbaar in XML-indeling in het resultaatobject.
Het onderstaande codefragment is een eenvoudig C#-voorbeeld van GetInfo:
ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");
Op dezelfde manier kan het BScript-object ook worden geopend via de webservice b1scriptservice
. Dit wordt gedaan door een webreferentie toe te voegen aan uw project met behulp van http://< server>:5151/BHOLD/Core/b1scriptservice.asmx, waarbij <server> de server is waarop de binaire BHOLD-bestanden zijn geïnstalleerd. Zie Een webservicereferentie toevoegen aan een Visual Studio-project voor meer informatie.
In het volgende voorbeeld ziet u hoe u de functie GetInfo van een webservice gebruikt. Met deze code wordt de organisatie-eenheid opgehaald die een organisatie-id van 1 heeft en wordt vervolgens de naam van die organisatie-eenheid op het scherm weergegeven.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace bhold_console
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
string orgname= "";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
//Load BHOLD information into an xml document and loop through document to find the bholdDescription value
var myOrgUnit = new System.Xml.XmlDocument();
myOrgUnit.LoadXml(bholdService.GetInfo("OrgUnit","1","","");
XmlNodeList myList = myOrgUnit.SelectNodes(("//item");
foreach (XmlNode myNode in myList)
{
for (int i = 0; i < myNode.ChildNodes.Count; i++)
{
if (myNode.ChildNodes[i].InnerText.ToString() == "bholdDescription")
{
orgname = myNode.ChildNodes[i + 1].InnerText.ToString();
}
}
}
System.Console.WriteLine("The Organizational Unit Name is: " + orgname);
}
}
}
In het volgende VBScript-voorbeeld wordt de webservice gebruikt via SOAP en met behulp van GetInfo. Zie de sectie BHOLD Managed Reference voor aanvullende voorbeelden voor SOAP 1.1, SOAP 1.2 en HTTP POST. U kunt ook rechtstreeks vanuit een browser naar de webservice navigeren en deze daar bekijken.
Dim SOAPRequest
Dim SOAPParameters
Dim SOAPResponse
Dim xmlhttp
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST", "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx", False, "CORP\Administrator", "abc123*2k"
xmlhttp.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", "http://B1/B1ScriptService/GetInfo"
SOAPRequest = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsi=""http://" & vbCRLF
SOAPRequest = SOAPRequest & " www.w3.org/2001/XMLSchema-instance""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCRLF
SOAPRequest = SOAPRequest & " <soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " <GetInfo xmlns=""http://B1/B1ScriptService"">" & vbCRLF
SOAPRequest = SOAPRequest & " <functionName>OrgUnit</functionName>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter1>1</parameter1>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter2></parameter2>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter3></parameter3>" & vbCRLF
SOAPRequest = SOAPRequest & " </GetInfo>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Envelope>"
MsgBox SOAPRequest
xmlhttp.send SOAPRequest
SOAPResponse = xmlhttp.responseText
MsgBox SOAPResponse
Scripts uitvoeren
De functie ExecuteScript van het BScript-object kan worden gebruikt om scripts uit te voeren. Voor deze functie zijn twee parameters vereist. De eerste parameter is het XML-document dat de aangepaste informatie bevat die door het script moet worden gebruikt. De tweede parameter is de naam van het vooraf gedefinieerde script dat moet worden gebruikt. In de map met vooraf gedefinieerde BHOLD-scripts moet hier een XSL-document zijn met dezelfde naam als de functie, maar met de extensie .xsl.
Als de functie niet slaagt, retourneert de functie ExecuteScript de waarde False. De foutbeschrijving en het nummer kunnen worden gebruikt om te weten wat er fout is gegaan. Hier volgt een voorbeeld van het gebruik van de executeXML-webmethode. Met deze methode wordt ExecuteScript aangeroepen.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
System.Console.WriteLine( "Add user #3 to role #44, result: {0}", bholdService.ExecuteXml(roleAddUser("44", "3")) );
System.Console.WriteLine("Add user D1 to role 'MR-OU2 No Users', result: {0}", bholdService.ExecuteXml(roleAddUser("MR-OU2 No Users", "D1")));
}
private static System.Xml.XmlNode roleAddUser(string roleId, string userId)
{
var script = new System.Xml.XmlDocument();
script.LoadXml(string.Format("<functions>"
+" <function name='roleadduser' roleid='{0}' userid='{1}' />"
+"</functions>",
roleId,
userId)
);
return script.DocumentElement;
BholdScriptResult
Deze functie GetInfo is beschikbaar nadat de executescript-functie is uitgevoerd. De functie retourneert een tekenreeks met XML-indeling die het volledige uitvoeringsrapport bevat. Het knooppunt Script bevat de XML-structuur van het uitgevoerde script.
Voor elke functie die mislukt tijdens het uitvoeren van het script wordt een knooppuntfunctie toegevoegd met de naam van de knooppunten. ExecuteXML en Error worden toegevoegd aan het einde van het document. Alle gegenereerde id's worden toegevoegd.
U ziet dat alleen de functies, die een fout bevatten, worden toegevoegd. Een foutnummer van '0' betekent dat de functie niet wordt uitgevoerd.
<Bhold>
<Script>
<functions>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</functions>
</Script>
<Function>
<Name>OrgUnitadd</Name>
<ExecutedXML>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
</ExecutedXML>
<Error Number="5" Description="Violation of UNIQUE KEY constraint 'IX_OrgUnits'. Cannot insert duplicate key in object 'dbo.OrgUnits'.
The statement has been terminated."/>
</Function>
<Function>
<Name>roleaddOrgUnit</Name>
<ExecutedXML>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</ExecutedXML>
<Error Number="0" Description=""/>
</Function>
<IDS>
<ID name="@ID@">35</ID>
</IDS>
</Bhold>
Id-parameters
Id-parameters krijgen een speciale behandeling. Niet-numerieke waarden worden gebruikt als zoekwaarde voor het zoeken naar de bijbehorende entiteiten in het BHOLD-gegevensarchief. Wanneer de zoekwaarde niet uniek is, wordt de eerste entiteit geretourneerd die voldoet aan de zoekwaarde.
Als u numerieke zoekwaarden van id's wilt onderscheiden, kunt u een voorvoegsel gebruiken. Wanneer de eerste zes tekens van de zoekwaarde gelijk zijn aan 'no_id:', worden deze tekens verwijderd voordat de waarde wordt gebruikt voor zoeken. SQL-jokertekens %kunnen worden gebruikt.
De volgende velden worden gebruikt met de zoekwaarde:
Id-type | Zoekveld |
---|---|
OrgUnitID | Description |
roleID | Description |
Taskid | Description |
userID | DefaultAlias |
Scripttoegang en -machtigingen
Code aan de serverzijde op de actieve serverpagina's wordt gebruikt om de scripts uit te voeren. Toegang tot het script betekent daarom toegang tot deze pagina's. Het BHOLD-systeem houdt informatie bij over de ingangspunten van de aangepaste pagina's. Deze informatie omvat de startpagina en de beschrijving van de functie (meerdere talen moeten worden ondersteund).
Een gebruiker is gemachtigd om de aangepaste pagina's in te voeren en een script uit te voeren. Elk toegangspunt wordt weergegeven als een taak. Elke gebruiker die deze taak heeft verkregen via een rol of een eenheid, kan de bijbehorende functie uitvoeren.
Een nieuwe functie in het menu bevat alle aangepaste functies die door de gebruiker kunnen worden uitgevoerd. Omdat een script acties kan uitvoeren in het BHOLD-systeem onder een identiteit die verschilt van de gebruiker die is aangemeld. Het is mogelijk om toestemming te geven om één specifieke actie uit te voeren zonder toezicht te hebben op een object. Dit kan bijvoorbeeld handig zijn voor een werknemer die alleen nieuwe klanten bij het bedrijf mag invoeren. Deze scripts kunnen ook worden gebruikt om zelfregistratiepagina's te maken.
Opdrachtscript
Het opdrachtscript bevat een lijst met functies die worden uitgevoerd door het BHOLD-systeem. De lijst is geschreven in een XML-document dat voldoet aan de volgende definities:
Opdrachtscript | <functions>functions</functions> |
---|---|
Functies | functie {function} |
Functie | <function name="functionName" functionParameters [return] (/> | > parameterList </ function>) |
functionName | Een geldige functienaam zoals beschreven in de volgende secties. |
functionParameters | { functionParameter } |
functieParameter | parameterName = "parameterValue" |
parameterName | Een geldige parameternaam. |
Parametervalue | @variable@ | Waarde |
waarde | Een geldige parameterwaarde. |
parameterList | <parameters> {parameterItem} </parameters> |
parameterItem | <parameter name="parameterName"> parameterValue </parameter> |
terugkeren | return="@variable@" |
Variabele | Een aangepaste variabelenaam. |
XML bevat de volgende vertalingen van speciale tekens:
XML | Teken |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Deze XML-tekens kunnen worden gebruikt in id's, maar worden niet aanbevolen.
De volgende code toont een voorbeeld van een geldig opdrachtdocument met drie functies:
<functions>
<functionname="OrgUnitAdd" parentID="34" description="Acme Inc." orgtypeID="5" return="@UnitID@" />
<function name="UserAdd" description="John Doe" alias="jdoe" languageID="1" OrgUnitID="@UnitID@" />
<function name="TaskAddFile" taskID="93" path="/customers/purchase">
<parameters>
<parameter name="history"> True</parameter>
</parameters>
</function>
</functions>
De functie OrgUnitAdd slaat de id van de gemaakte eenheid op in een variabele met de naam UnitID. Deze variabele wordt gebruikt als invoer voor de functie UserAdd. De retourwaarde van deze functie wordt niet gebruikt. In de volgende secties worden alle beschikbare functies, de vereiste parameters en de bijbehorende retourwaarden beschreven.
Functies uitvoeren
In deze sectie wordt beschreven hoe u de uitvoeringsfuncties gebruikt.
ABAAttributeRuleAdd
Maak een nieuwe kenmerkregel voor een specifiek kenmerktype. Kenmerkregels kunnen slechts aan één kenmerktype worden gekoppeld.
De opgegeven kenmerkregel kan worden gekoppeld aan alle mogelijke kenmerktypen.
Het RuleType kan niet worden gewijzigd met de opdracht ABAattributeruletypeupdate. Vereist dat de beschrijving van het kenmerk uniek is.
Argumenten | Type |
---|---|
Description | Tekst |
Regeltype | Geef het type kenmerkregel op. Afhankelijk van het type kenmerkregel moeten andere argumenten worden opgenomen. De volgende regeltypewaarden zijn geldig:
|
InvertResult | ["0"|"1"|"N"|"Y"] |
AttributeTypeID | Tekst |
Optionele argumenten | Type |
---|---|
Operator | Tekst Opmerking: dit argument is verplicht als RuleType 1 of 4 is. De mogelijke waarden zijn =, '<' of '>'. XML-tags moeten '>' gebruiken voor '>' en '<' voor '<'. |
BereikMin | Aantal Opmerking: dit argument is verplicht als RuleType 3 is. |
Rangemax | Aantal Opmerking: dit argument is verplicht als RuleType 3 is. |
Waarde | Tekst Opmerking: dit argument is verplicht als RuleType 0, 1 of 4 is. Het argument moet een numerieke of alfanumerieke waarde zijn. |
Retourtype AttributeRuleID | Tekst |
applicationadd
Maakt een nieuwe toepassing en retourneert de id van de nieuwe toepassing.
Argumenten | Type |
---|---|
beschrijving | |
Machine | |
module | |
parameter | |
protocol | |
gebruikersnaam | |
wachtwoord | |
svroleID (optioneel) | Als dit argument niet aanwezig is, wordt een supervisorrol van de huidige gebruiker gebruikt. |
Applicationaliasformula (optioneel) | De aliasformule wordt gebruikt om een alias voor een gebruiker te maken wanneer deze wordt toegewezen aan een machtiging van de toepassing. De alias wordt gemaakt als de gebruiker nog geen alias voor deze toepassing heeft. Als er geen waarde wordt gegeven, wordt de standaardalias van de gebruiker gebruikt als alias voor de toepassing. De formule is opgemaakt als [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)] . De offset is optioneel. Alleen gebruikers- en toepassingskenmerken kunnen worden gebruikt. Vrije tekst kan worden gebruikt. De gereserveerde tekens zijn vierkante haakjes ([) en vierkante haak rechts (]). Bijvoorbeeld: [Application.bholdDescription]\[User.bholdDefAlias(1,5)] . |
Retourtype | Id van de nieuwe toepassing. |
AttributeSetValue
Hiermee stelt u de waarde in van een kenmerktype dat is verbonden met het objecttype. Vereist dat de beschrijvingen van het objecttype en het kenmerktype uniek zijn.
Argumenten | Type |
---|---|
ObjectTypeID | Tekst |
ObjectID | Tekst |
AttributeTypeID | Tekst |
Waarde | Tekst |
Retourtype | Type |
AttributeTypeAdd
Hiermee voegt u een nieuw kenmerktype/eigenschapstype in.
Argumenten | Type |
---|---|
DataTypeID | Tekst |
Beschrijving (=Identiteit) | Tekst Opmerking: gereserveerde woorden kunnen niet worden gebruikt, zoals 'a', 'frm', 'id', 'usr' en 'bhold'. |
Maxlength | Getal in [1,..,255] |
ListOfValues (booleaanse waarde) | ["0"|"1"|"N"|"Y"] |
Standaardwaarde | Tekst |
Retourtype | Type |
AttributeTypeID | Tekst |
AttributeTypeSetAdd
Hiermee voegt u een nieuwe kenmerktypeset in. Vereist dat de beschrijving van een kenmerktypeset uniek is.
Argumenten | Type |
---|---|
Beschrijving (=Identiteit) | Tekst |
Retourtype | Type |
AttributeTypeSetID | Tekst |
AttributeTypeSetAddAttributeType
Hiermee wordt een nieuw kenmerktype ingevoegd in een bestaande kenmerktypeset. Vereist dat de beschrijvingen van de kenmerktypeset en kenmerktype uniek zijn.
Argumenten | Type |
---|---|
AttributeTypeSetID | Tekst |
AttributeTypeID | Tekst |
Volgorde | Aantal |
LocationID | Tekst Opmerking: de locatie is 'groep' of 'enkel'. |
Verplicht | ["0"|"1"|"N"|"Y"] |
Retourtype | Type |
ObjectTypeAddAttributeTypeSet
Hiermee voegt u een kenmerktype toe dat is ingesteld op een objecttype. Vereist dat de beschrijving van het objecttype en de kenmerktypeset uniek zijn. De objecttypen zijn: Systeem, OrgUnit, Gebruiker, Taak.
Argumenten | Type |
---|---|
ObjectTypeID | Tekst |
AttributeTypeSetID | Tekst |
Volgorde | Aantal |
Zichtbaar |
|
Retourtype | Type |
OrgUnitadd
Maakt een nieuwe organisatie-eenheid en retourneert de id van de nieuwe organisatie-eenheid.
Argumenten | Type |
---|---|
beschrijving | |
orgtypeID | |
parentID | |
OrgUnitinheritedroles (optioneel) | |
Retourtype | Type |
Id van de nieuwe eenheid | De parameter OrgUnitinheritedroles heeft de waarde ja of nee. |
OrgUnitaddsupervisor
Maak van een gebruiker een supervisor van een organisatie-eenheid.
Argumenten | Type |
---|---|
svroleID | Het argument userID kan ook worden gebruikt. In dit geval is de standaardsupervisorrol geselecteerd. Een standaardsupervisorrol heeft een naam als __svrole gevolgd door een getal. Het argument userID kan worden gebruikt voor compatibiliteit met eerdere versies. |
OrgUnitID |
OrgUnitadduser
Een gebruiker lid maken van een organisatie-eenheid.
Argumenten | Type |
---|---|
userID | |
OrgUnitID |
OrgUnitdelete
Hiermee verwijdert u een organisatie-eenheid.
Argumenten | Type |
---|---|
OrgUnitID |
OrgUnitdeleteuser
Hiermee verwijdert u een gebruiker als lid van een organisatie-eenheid.
Argumenten | Type |
---|---|
userID | |
OrgUnitID |
roleadd
Hiermee maakt u een nieuwe rol.
Argumenten | Type |
---|---|
Description | |
svrole | |
svroleID (optioneel) | Als dit argument niet aanwezig is, wordt een supervisorrol van de huidige gebruiker gebruikt. |
ContextAdaptable (optioneel) | ["0","1","N","Y"] |
MaxPermissions (optioneel) | Geheel getal |
MaxRoles (optioneel) | Geheel getal |
MaxUsers (optioneel) | Geheel getal |
Retourtype | Type |
Id van de nieuwe rol |
roleaddOrgUnit
Hiermee wijst u een rol toe aan een organisatie-eenheid.
Argumenten | Type |
---|---|
OrgUnitID | roleID |
inheritThisRole | 'true' of 'false', geeft aan of de rol wordt voorgesteld aan onderliggende eenheden. |
roleaddrole
Hiermee wijst u een rol toe als een subrol van een andere rol.
Argumenten | Type |
---|---|
roleID | |
subRoleID |
roleaddsupervisor
Maak van een gebruiker een supervisor van een rol.
Argumenten | Type |
---|---|
svroleID | Het argument userID kan ook worden gebruikt. In dit geval wordt de standaardsupervisorrol geselecteerd. Een standaardsupervisorrol heeft een naam als __svrole gevolgd door een getal. Het argument userID kan worden gebruikt voor compatibiliteit met eerdere versies. |
roleID |
roleadduser
Hiermee wijst u een rol toe aan een gebruiker. De rol kan geen rol zijn die kan worden aangepast aan de context wanneer er geen contextID is opgegeven.
Argumenten | Type |
---|---|
userID | |
roleID | |
durationType (optioneel) | Kan de waarden 'gratis', 'uren' en 'dagen' bevatten. |
durationLength (optioneel) | Vereist wanneer durationType 'uren' of 'dagen' is. moet het gehele getal bevatten voor het aantal uren of dagen dat de rol is toegewezen aan een gebruiker. |
start (optioneel) | De datum en tijd waarop de rol is toegewezen. Wanneer u dit kenmerk weglaat, wordt de rol onmiddellijk toegewezen. Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden. |
end (optioneel) | De datum en tijd waarop de rol is ingetrokken. Wanneer durationType en durationLength worden opgegeven, wordt deze waarde genegeerd. Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden. |
linkreason | Vereist wanneer begin, einde of duur wordt opgegeven, anders genegeerd. |
contextId (optioneel) | Id van de organisatie-eenheid, alleen vereist voor rollen die kunnen worden aangepast aan de context. |
roledelete
Hiermee verwijdert u een rol.
Argumenten | Type |
---|---|
roleID |
roledeleteuser
Hiermee verwijdert u roltoewijzing aan een gebruiker. Overgenomen rollen van de gebruiker worden ingetrokken met deze opdracht.
Argumenten | Type |
---|---|
userID | |
roleID | |
contextID (optioneel) |
roleproposeOrgUnit
Stelt een rol voor om deze toe te wijzen aan de leden en de sub-OrgUnits van een OrgUnit.
Argumenten | Type |
---|---|
OrgUnitID | |
roleID | |
durationType (optioneel) | Kan de waarden 'gratis', 'uren' en 'dagen' bevatten. |
durationLength | Vereist wanneer durationType 'uren' of 'dagen' is, moet de gehele waarde bevatten voor het aantal uren of dagen dat de rol is toegewezen aan een gebruiker. |
durationFixed | 'true' of 'false', geeft aan of de toewijzing van deze rol aan een gebruiker gelijk moet zijn aan durationLength. |
inheritThisRole | 'true' of 'false', geeft aan of de rol wordt voorgesteld aan onderliggende eenheden. |
taskadd
Maakt een nieuwe taak en retourneert de id van de nieuwe taak.
Argumenten | Type |
---|---|
applicationID | |
beschrijving | Tekst met maximaal 254 tekens. |
taaknaam | Tekst met maximaal 254 tekens. |
tokenGroupID | |
svroleID (optioneel) | Als dit argument niet aanwezig is, wordt een supervisorrol van de huidige gebruiker gebruikt. |
contextAdaptable (optioneel) | ["0","1","N","Y"] |
underconstruction (optioneel) | ["0","1","N","Y"] |
auditactie (optioneel) |
|
auditalertmail (optioneel) | Het e-mailadres waarnaar waarschuwingen over deze toestemming moeten worden verzonden, worden door de auditor verzonden. Als dit argument niet aanwezig is, wordt het waarschuwings-e-mailadres van de auditor gebruikt. |
MaxRoles (optioneel) | Geheel getal |
MaxUsers (optioneel) | Geheel getal |
Retourtype | Id van de nieuwe taak. |
taskadditask
Geef aan dat twee taken niet compatibel zijn.
Argumenten | Type |
---|---|
Taskid | |
taskID2 |
taskaddrole
Hiermee wijst u een taak toe aan een rol.
Argumenten | Type |
---|---|
roleID | |
Taskid |
taskaddsupervisor
Een gebruiker een supervisor van een taak maken.
Argumenten | Type |
---|---|
svroleID | Het argument userID kan ook worden gebruikt. In dit geval wordt de standaardsupervisorrol geselecteerd. Een standaardsupervisorrol heeft een naam als __svrole gevolgd door een getal. Het argument userID kan worden gebruikt voor compatibiliteit met eerdere versies. |
Taskid |
Useradd
Hiermee maakt u een nieuwe gebruiker en retourneert u de id van de nieuwe gebruiker.
Argumenten | Type |
---|---|
beschrijving | |
alias | |
Languageid |
|
OrgUnitID | |
einddatum (optioneel) | Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden. |
uitgeschakeld (optioneel) |
|
MaxPermissions (optioneel) | Geheel getal |
MaxRoles (optioneel) | Geheel getal |
Retourtype | Id van de nieuwe gebruiker. |
UserAddRole
Hiermee voegt u een gebruikersrol toe.
Argumenten | Type |
---|---|
UserDeleteRole
Hiermee verwijdert u een gebruikersrol.
Argumenten | Type |
---|---|
Userupdate
Updates een gebruiker.
Argumenten | Type |
---|---|
UserID | |
beschrijving (optioneel) | |
language |
|
userDisabled (optioneel) |
|
UserEndDate (optioneel) | Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden. |
firstName (optioneel) | |
middleName (optioneel) | |
lastName (optioneel) | |
maxPermissions (optioneel) | Geheel getal |
maxRoles (optioneel) | Geheel getal |
GetInfo-functies
De set functies die in deze sectie worden beschreven, kan worden gebruikt om informatie op te halen die is opgeslagen in het BHOLD-systeem. Elke functie kan worden aangeroepen met behulp van de functie GetInfo van het BScript-object. Voor sommige objecten zijn parameters vereist. De geretourneerde gegevens zijn onderhevig aan de weergavemachtigingen en de objecten onder supervisie van de gebruiker die is aangemeld.
GetInfo-argumenten
Naam | Beschrijving |
---|---|
toepassingen | Retourneert een lijst met toepassingen. |
kenmerktypen | Retourneert een lijst met kenmerktypen. |
organisatietypen | Retourneert een lijst met typen organisatie-eenheden. |
OrgUnits | Retourneert een lijst met organisatie-eenheden zonder de kenmerken van de organisatie-eenheden. |
OrgUnitproposedroles | Retourneert een lijst met voorgestelde rollen die zijn gekoppeld aan de organisatie-eenheid. |
OrgUnitroles | Retourneert een lijst met rechtstreeks gekoppelde rollen van de opgegeven organisatie-eenheid |
Objecttypeattributetypes | |
permissions | |
permissionusers | |
rollen | Retourneert een lijst met rollen. |
roletasks | Retourneert een lijst met taken van de opgegeven rol. |
taken | Retourneert alle taken die bekend zijn bij BHOLD. |
gebruikers | Retourneert een lijst met gebruikers. |
usersroles | Retourneert de lijst met gekoppelde supervisorrollen van de opgegeven gebruiker. |
userpermissions | Retourneert de lijst met machtigingen van de opgegeven gebruiker. |
OrgUnit Info
Name | Parameters | Retourtype |
---|---|---|
OrgUnit | OrgUnitID | OrgUnit |
OrgUnitasiattributes | OrgUnitID | Verzameling |
OrgUnits | filter (optioneel), proptypeid (optioneel) Zoekt naar eenheden die de tekenreeks bevatten die wordt beschreven in het filter in het proptype dat wordt beschreven in proptypeid. Als u deze id weglaat, wordt het filter toegepast op de beschrijving van de eenheid. Als er geen filter wordt opgegeven, worden alle zichtbare eenheden geretourneerd. |
Verzameling |
OrgUnitOrgUnits | OrgUnitID | Verzameling |
OrgUnitparents | OrgUnitID | Verzameling |
OrgUnitpropertyvalues | OrgUnitID | Verzameling |
OrgUnitproptypes | Verzameling | |
OrgUnitusers | OrgUnitID | Verzameling |
OrgUnitproposedroles | OrgUnitID | Verzameling |
OrgUnitroles | OrgUnitID | Verzameling |
OrgUnitinheritedroles | OrgUnitID | Verzameling |
OrgUnitsupervisors | OrgUnitID | Verzameling |
OrgUnitinheritedsupervisors | OrgUnitID | Verzameling |
OrgUnitsupervisorroles | OrgUnitID | Verzameling |
Rolgegevens
Name | Parameters | Retourtype |
---|---|---|
role | roleID | Object |
rollen | filter (optioneel) | Verzameling |
roleasiattributes | roleID | Verzameling |
roleOrgUnits | roleID | Verzameling |
roleparentroles | roleID | Verzameling |
rolesubroles | roleID | Verzameling |
rolsupervisors | roleID | Verzameling |
rolesupervisorroles | roleID | Verzameling |
roletasks | roleID | Verzameling |
roleusers | roleID | Verzameling |
rolesupervisorroles | roleID | Verzameling |
proposedroleOrgUnits | roleID | Verzameling |
proposedroleusers | roleID | Verzameling |
Machtiging - Taakgegevens
Name | Parameters | Retourtype |
---|---|---|
Toestemming | TaskID | Machtiging |
permissions | filter (optioneel) | Verzameling |
permissionasiattributes | TaskID | Verzameling |
machtigingenbijslag | TaskID | Verzameling |
permissionattributetypes | - | Verzameling |
machtigingsparameters | TaskID | Verzameling |
permissionroles | TaskID | Verzameling |
permissionsupervisors | TaskID | Verzameling |
permissionsupervisorroles | TaskID | Verzameling |
permissionusers | TaskID | Verzameling |
taak | TaskID | Taak |
taken | filter (optioneel) | Verzameling |
taakbijslag | TaskID | Verzameling |
taakparams | TaskID | Verzameling |
taskroles | TaskID | Verzameling |
taaksupervisors | TaskID | Verzameling |
tasksupervisorroles | TaskID | Verzameling |
taskusers | TaskID | Verzameling |
Gebruikersgegevens
Name | Parameters | Retourtype |
---|---|---|
gebruiker | UserID | Gebruiker |
gebruikers | filter (optioneel), attributetypeid (optioneel) Hiermee zoekt u naar gebruikers die in het kenmerktype dat is opgegeven door attributetypeid de tekenreeks bevatten die is opgegeven door het filter. Als u deze id weglaat, is het filter van toepassing op de standaardalias van de gebruiker. Als er geen filter wordt opgegeven, worden alle zichtbare gebruikers geretourneerd. Bijvoorbeeld:
|
UserCollection |
gebruikerstoepassingen | UserID | Verzameling |
Gebruikersmachtigingen | UserID | Verzameling |
userroles | UserID | Verzameling |
usersroles | UserID | Verzameling |
gebruikerstaken | UserID | Verzameling |
gebruikerseenheden | UserID | Verzameling |
usertasks | UserID | Verzameling |
userunits | UserID | Verzameling |
Retourtypen
In deze sectie worden de retourtypen van de functie GetInfo beschreven.
Name | Retourtype |
---|---|
Verzameling | =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS> |
Object | =<ITEM type="…" description="..." /> |
OrgUnit | = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Machtiging | = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Rollen | = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS> |
Rol | = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Taak | Zie Machtiging |
Gebruikers | = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS> |
Gebruiker | = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Voorbeeld van script
Een bedrijf heeft een BHOLD-server en wil een geautomatiseerd script waarmee nieuwe klanten worden gemaakt. De informatie over het bedrijf en de aankoopmanager wordt ingevoerd op een aangepaste webpagina. Elke klant wordt in het model weergegeven als een eenheid onder de eenheid klanten. De inkoopmanager is zowel lid als supervisor van deze eenheid. Er wordt een rol gemaakt die de eigenaren het recht geeft om te kopen op naam van de nieuwe klant.
Deze klant bestaat echter niet in de toepassing. Er is een speciale functie geïmplementeerd in de ASI-functieDispatch waarmee een nieuw klantaccount wordt gemaakt in de aankooptoepassing. Elke klant heeft een klanttype.
De mogelijke typen kunnen ook worden weergegeven door de functie FunctionDispatch. De AA kiest het juiste type voor de nieuwe klant.
Maak een rol en taak om de aankoopbevoegdheden te presenteren. De echte aankoopbevoegdheden worden door de ASI gepresenteerd als een bestand /customers/customer id/purchase
. Dit bestand moet worden gekoppeld aan de nieuwe taak.
De actieve serverpagina waarop de informatie wordt verzameld, ziet er als volgt uit:
<%@ Language=VBScript %>
<% Option Explicit %>
<html>
<body>
<form action="MySubmit.asp" method=post>
<input type="hidden" name="OrgUnitID"
value="<% = Request("ID") %>">
Company <input type="text" name="Description"> <br>
Type <select name="OrgType">
<%Dim oOrgType
For Each oOrgType on bscript.getinfo("Orgtypes") %>
<option value="<% = oOrgType.OrgTypeID %>">
<% = oOrgType.Description %>
</option> <%
Next %>
</select> <br>
Manager <input type="text" name=" manager"> <br>
Alias <input type=" text" name=" alias"> <br>
e-mail <input type=" text" name=" email"> <br>
<input type="submit">
</form>
</body>
</html>
De aangepaste pagina's hoeven alleen de juiste informatie op te vragen en een XML-document te maken met de aangevraagde informatie. In dit voorbeeld transformeert de pagina MySubmit de gegevens in het XML-document en wijst deze toe aan het b1script. Parameters-object en roept ten slotte de b1script.ExecuteScript("MyScript")
functie aan.
In het volgende invoerscript ziet u dit voorbeeld:
<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>
Dit invoerscript bevat geen opdrachten voor BHOLD. Dit komt doordat dit script niet rechtstreeks door BHOLD wordt uitgevoerd; in plaats daarvan is dit de invoer voor een vooraf gedefinieerde functie. Deze vooraf gedefinieerde functie vertaalt dit object naar een XML-document met BHOLD-opdrachten. Dit mechanisme voorkomt dat de gebruiker scripts naar het BHOLD-systeem verzendt die functies bevatten die de gebruiker niet mag uitvoeren, zoals setUser en functieverzending naar een ASI.
<?xml version="1.0" encoding="utf-8" ?>
- <functions xmlns="http://tempuri.org/BscriptFunctions.xsd">
<function name="roleadduser" roleid="" userid="" />
<function name="roledeleteuser" roleid="" userid="" />
</functions>